首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据修复到模型类中

将数据修复到模型类中
EN

Stack Overflow用户
提问于 2022-08-08 20:06:59
回答 1查看 174关注 0票数 0

I有以下修复数据库;

在我的第一页中,我查询所有的“Other”集合文档,并列出每个文档的“名称”和“姓氏”字段,并使用按钮将我重定向到那个人的页面。

代码语言:javascript
复制
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‘和’姓氏‘的最后参数,就像这样;

代码语言:javascript
复制
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生成一个模型类,一旦单击某个人的按钮,我就会在这个模型类中设置他的所有信息,并在下面的页面中获取它们。

在颤振/飞镖中为这个目的生成一个模型类是一个很好的实践吗?如果是这样,我如何生成这个模型类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-10 16:58:21

由于缺少答案,不得不使用这个临时解决方案,并将这个模型类传递给每个需要信息的小部件。我对这方面的最佳实践的探索仍在进行中,但这也做了工作。

代码语言:javascript
复制
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,
    };
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73283460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档