【发布时间】: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(账户)的数据来做我的测试。
所以我不知道如何进行:/有什么想法吗?
【问题讨论】: