美文网首页
[Flutter 实战] setState() or mark

[Flutter 实战] setState() or mark

作者: 寅丁 | 来源:发表于2019-05-20 09:19 被阅读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();
            });
    }
    

    相关文章

      网友评论

          本文标题:[Flutter 实战] setState() or mark

          本文链接:https://www.haomeiwen.com/subject/eerhzqtx.html