Flutter initstate导航器无法正常工作

Rah*_*hra 2 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()));

}
Run Code Online (Sandbox Code Playgroud)

Din*_*ian 6

我们在遇到错误的同时 building the Widget我们要求导航时。

有一个解决方法。

Future(() {
   Navigator.push(context, MaterialPageRoute(builder: (context)=> Dashboard()));
});
Run Code Online (Sandbox Code Playgroud)

说明:

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

void main() {
  print("first");
  Future(() => print("second"));
  print("third");
  Future(() => print("forth"));
}
Run Code Online (Sandbox Code Playgroud)

输出将是

first
third
second
forth
Run Code Online (Sandbox Code Playgroud)