I有以下修复数据库;

在我的第一页中,我查询所有的“Other”集合文档,并列出每个文档的“名称”和“姓氏”字段,并使用按钮将我重定向到那个人的页面。
class FirstPage extends StatelessWidget {
const FirstPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return FutureBuilder<QuerySnapshot>(
future: FirebaseFirestore.instance
.collection('Other')
.get(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasData) {
var documents = snapshot.data!.docs;
ListView.builder(
itemCount: documents.length,
itemBuilder: (context, index) {
return TextButton(
child: Text(documents[index]['name']),
onPressed: () => Get.to(() => const Person()),
);
},
);
}
},
);
}
}我知道我可以简单地在Person类中添加'name‘和’姓氏‘的最后参数,就像这样;
class Person extends StatelessWidget {
final String name;
final String surname;
const Person({Key? key, required this.name, required this.surname}) : super(key: key);但是,在Person类中,我必须将该信息传递给下面的页面,并且通过构造函数向后传递参数似乎不是一个好做法。
根据我对其他编程语言的了解,我可以简单地用设置器和Getters生成一个模型类,一旦单击某个人的按钮,我就会在这个模型类中设置他的所有信息,并在下面的页面中获取它们。
在颤振/飞镖中为这个目的生成一个模型类是一个很好的实践吗?如果是这样,我如何生成这个模型类?
发布于 2022-08-10 16:58:21
由于缺少答案,不得不使用这个临时解决方案,并将这个模型类传递给每个需要信息的小部件。我对这方面的最佳实践的探索仍在进行中,但这也做了工作。
import 'package:cloud_firestore/cloud_firestore.dart';
class PersonModel {
String name, surname;
PersonModel({
required this.name,
required this.surname,
});
factory PersonModel.fromMap(Map<dynamic, dynamic> map) {
return PersonModel(
name: map['name'],
surname: map['surname'],
);
}
Map<dynamic, dynamic> toMap() {
return {
'name': name,
'surname': surname,
};
}
}https://stackoverflow.com/questions/73283460
复制相似问题