【问题标题】:Initialize my list from the backend when building for the first time第一次构建时从后端初始化我的列表
【发布时间】:2019-12-10 22:16:36
【问题描述】:

我有一个列表视图中显示的Contact 对象列表。我想做的是在页面第一次构建时从后端初始化我的列表。

我使用 ScopedModel 从后端获取数据。 所以我想做的是:

ScopedModelDescendant<Account>(
        builder: (context, child, _account){
... 

if(_account.profile.contacts != null)
   _account.profile.contacts.forEach((contact){
       Contacts contactToAdd = new Contacts(contact.name, contact.label, contact.phonenumber,contact.email);
       contactToAdd.onTap = editContact(contactToAdd);
       listOfContact.add(contactToAdd);
    });
  }
)

但问题是,由于代码在 build method 中,每次我添加联系人时,都会因为 ScopedModel 而构建所有内容,并且重新执行此代码使得每次我添加一个联系人时,整个列表再次添加它会重复和增加很多东西。

为什么我不在 Build 方法之外执行此代码,例如在 didChangeDependencies() 中?因为我需要Scoped Model(账户)的数据来做我的测试。

所以我不知道如何进行:/有什么想法吗?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:
    猜你喜欢
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    相关资源
    最近更新 更多