[Flutter 实战] setState() or mark

2019-05-20  本文已影响0人  寅丁

在此记录项目中所遇到问题及解决方案

在initState方法中使用context对象获取用户token时发生该错误,解决方法是
把它移到did

修改之前的代码:

  @override
  void initState() {
    super.initState();
    if(_presenter==null) {
      _presenter = new MyCouponPresenter(this, getToken(context));
      _presenter.query(0);
    }
  }

修改之后的代码:

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    if(_presenter==null) {
      _presenter = new MyCouponPresenter(this, getToken(context));
      _presenter.query(0);
    }
  }

在didChangeDependencies方法中showDialog还是会出现这个问题,可以使用延时处理。

_showLoadingDialog() async{
  await Future.delayed(Duration(milliseconds: 100));
  showDialog<DialogDemoAction>(context: context,
        builder: (BuildContext context){
          return LoadingDialog();
        });
}
上一篇下一篇

猜你喜欢

热点阅读