Flutter initstate导航器不起作用
问题内容:
我正在使用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()));
}
问题答案:
正如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