我正在使用scoped_model
来管理应用状态。
我有AuthModel
的身份验证状态。当用户登录时,我在screen
中更改了AuthModel
:
Widget screen = LoadScreen();
if (loggedIn == true) {
screen = HomeScreen;
} else if (loggedIn == false) {
screen = LoginScreen;
}
但是当我在RootPage
小部件中调用时会出错:
Navigator.of(context).pushReplacementNamed(‘/${model.screen}’);
“ Package:flutter / src / widgets / navigator.dart”:断言失败:第 2106 pos 12:“!_ debugLocked”:不正确”
RootPage
是Flutter应用程序中的第一页,用于显示加载屏幕,直到用户登录或未登录为止返回授权:
class RootPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ScopedModelDescendant<AuthModel>(builder: (context, child, model) {
Navigator.of(context).pushReplacementNamed(‘/${model.screen}’);
});
}
}
为什么会出现此错误?
如果用户登录或注销,如何使用scoped_model
进行导航?
谢谢!