我正在使用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我们要求导航时一样,我们正在收到错误。
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