我正在使用initState并出现导航器问题:
I / flutter(5726):引发了以下断言 构建器: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()));
}
答案 0 :(得分: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
答案 1 :(得分:0)
在 MaterialApp 小部件中嵌入“MyApp”为我解决了这个问题。
void main() {
runApp(MaterialApp(
home:MyApp()
));
}