一尘不染

Flutter initstate导航器不起作用

flutter

我正在使用initState并出现导航器问题:

I / flutter(5726):在构建Builder时引发了以下断言:I /
flutter(5726):在构建期间调用了setState()或markNeedsBuild()。

我的代码:

@override
void initState() {

super.initState();
print(globals.isLoggedIn);
if(globals.isLoggedIn) {

    print("Already login");

    Navigator.push(context, MaterialPageRoute(builder: (context)=> Dashboard()));

}

阅读 527

收藏
2020-08-13

共1个答案

一尘不染

正如building the Widget我们要求导航时一样,我们正在收到错误。

有一个 解决 方法。

Future(() {
   Navigator.push(context, MaterialPageRoute(builder: (context)=> Dashboard()));
});

说明:

由于Dart基于 单线程事件循环 ,因此当我们创建 异步任务时
,它将把这些事件放在事件队列的末尾并继续其当前执行。请参考以下示例以了解更多详细信息,

void main() {
  print("first");
  Future(() => print("second"));
  print("third");
  Future(() => print("forth"));
}

输出将是

first
third
second
forth
2020-08-13