【发布时间】:2019-09-07 18:27:26
【问题描述】:
一个页面中有两个标签页。切换标签页时,从缓存中加载数据状态。提供者如何异步更新数据状态?
【问题讨论】:
标签: flutter
一个页面中有两个标签页。切换标签页时,从缓存中加载数据状态。提供者如何异步更新数据状态?
【问题讨论】:
标签: flutter
1-可以使用枚举来表示数据的状态
enum DataState{loading,success,error,idle}
2- 在你的扩展类中添加 枚举实例 changeNotifier
class YourClass extends ChangeNotifier {
DataState state = DataState.idle;
//the rest of your code
}
3- 更改更新数据的函数内state 的状态
Future updateData()async{
state = DataState.loading;
notifyListenrs();
await data;
if(data!=null)
state = DataState.sucess;
else
state = DataState.error;
notifyListeners();
}
4-在UI内部制作switch语句根据不同的widget返回
current state
switch(model.state)
{
case DataState.loading:
return CircularProgressIndicator();
break;
case DataState.succuess:
return showDataWidget();
break;
//and so on
}
【讨论】: