我对Flutter
还是陌生的,所以我不知道这是否是更新从服务器收集的数据的“正确”方法。就我而言,我正在做的是(我的应用程序代码很长,我认为下面的描述就足够了):
Firebase
)。Firebase
中保存的最新表单。
TextFormField
小部件(它们保存在Map
中,并用widgetsMap = {}
重置,这也是我对表单所做的操作数据本身),并使用从Firebase
检索到的数据重建它们。TextFormField
的初始值应基于从Firebase
检索的内容。为实现此目的,我尝试使用controller
和initialValue
,但都没有用。
date 1
的初始值为Hello
,而date 2
的初始值为World
;当我单击来自date 2
的{{1}}时,尽管date 1
小部件(甚至可能有不同的数量)将正确构建,但显示的初始值仍为{{ 1}}。那是怎么回事?重置小部件和数据后,是否应该清除小部件的TextFormField
?即使我用Hello
重置了这些对象后,这些对象是否仍然存在于背景中(我认为,由于initialValue
是一种垃圾收集语言,因此一旦删除了这些对象,这些对象将被删除。 ...)?
答案 0 :(得分:1)
将fitlerUsers()
添加到filterUsers(searchTerm) {
return this.userList.pipe(
map(res => {
const result = res.filter(user => {
return user.username.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
});
return result;
})
);
}
。您可以使用height = float(input("Enter the height required: "))
。例如:
Key
尽管您重置了自己的TextFormField
映射,但是如果将新的Key(initialValue)
放在小部件树中的相同位置,则TextFormField(
key: Key(widget.initialValue),
initialValue: widget.initialValue),
...
)
框架将重用以前的状态。设置TextFormField
会告诉TextFormField
这是一个不同的小部件。