如何在Navigator中使用scoped_model?

时间:2019-04-27 16:21:07

标签: dart flutter navigation state scoped-model

我正在使用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进行导航?

谢谢!

0 个答案:

没有答案