FutureBuilder即使在setState之后也没有更新UI



我是一个完全的Flutter初学者。当屏幕首次加载时,getOnlineClass()功能会正确加载数据。但当我尝试更新UI的值时,会加载新数据,但UI不会更新。

return RefreshIndicator(
onRefresh: () {
return dataLoader.loadOnlineClass().then((value) => (value){
print(value);
listDummy = PersistenceHelper().getOnlineClass();
setState(() {
print(listDummy.toString());
});
});
},
child: FutureBuilder(
future: listDummy, // async work
builder: (BuildContext context, AsyncSnapshot snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return Text('Loading....');
default:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}');
else
// print(snapshot.data);
return _listShowerTest(snapshot.data);
}
},
),
);

这似乎是一个拼写错误。

你已经给出

return dataLoader.loadOnlineClass().then((value) => (value){

但是你应该这样使用它。

return dataLoader.loadOnlineClass().then((value) {

删除第二个(value)部分,因为当你把它放在那里时,你正在创建一个使用单个参数的新函数。就像这个(value) {}

所以,固定代码将是

onRefresh: () {
return dataLoader.loadOnlineClass().then((value) {
print(value);
listDummy = PersistenceHelper().getOnlineClass();
setState(() {
// Also you should do some actual state setting here.
print(listDummy.toString());
});
});
},

相关内容

  • 没有找到相关文章

最新更新