我正在使用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)
我们在遇到错误的同时 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)
| 归档时间: |
|
| 查看次数: |
1127 次 |
| 最近记录: |