我有一个抽屉,我在我所有的 StatefulWidget 中共享这样
@override
Widget build(BuildContext context) {
return new Scaffold(
key: _scaffoldKey,
drawer: SharedDrawer()
... //More code
在 Drawer 中,我放了一个 LogOut 按钮,将用户重定向到登录页面,清除所有路由器堆栈。
Navigator.of(context).pop();
Navigator.of(context).pushNamedAndRemoveUntil('/', (Route<dynamic> route) => false);
但当我尝试再次登录应用程序时出现此错误。
flutter:查找已停用的小部件的祖先是不安全的。此时,窗口小部件元素树的状态不再稳定。要在其 dispose()方法中安全地引用窗口小部件的祖先,请通过在窗口小部件的 didChangeDependencies()方法中调用 inheritFromWidgetOfExactType()来保存对祖先的引用。
我做错了什么?
我如何管理应用程序中的 login/out 或导航器堆栈的东西?
问候!
1 回答
如果您在类中添加了MaterialApp,请将其删除并将其放入runApp中
runApp( new MaterialApp( home: new MyApp() ));