【问题标题】:How to use the provider to update the data state asynchronously?如何使用提供者异步更新数据状态?
【发布时间】:2019-09-07 18:27:26
【问题描述】:

一个页面中有两个标签页。切换标签页时,从缓存中加载数据状态。提供者如何异步更新数据状态?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2020-02-06
      • 2021-01-14
      • 1970-01-01
      相关资源
      最近更新 更多