我正在使用调度LoggedInSuccessfully *** 作的中间件处理对Google的API调用.我知道我可以使用Navigator.pushnamed(context,“/ routename”)进行实际路由,但我不熟悉Flutter和Redux,我的问题是我只是不知道在哪里调用它.
下面的代码适用于GoogleAuthbuttonContainer,我猜测路由应该在哪里. GoogleAuthbutton只是一个包含实际按钮和布局的普通小部件.
任何帮助表示感谢,谢谢!
@overrIDe Widget build(BuildContext context) { return new StoreConnector<AppState,_viewmodel>( converter: _viewmodel.fromStore,builder: (BuildContext context,_viewmodel vm) { return new GoogleAuthbutton( buttonText: vm.buttonText,onpressedCallback: vm.onpressedCallback,); },); }}class _viewmodel { final String buttonText; final Function onpressedCallback; _viewmodel({this.onpressedCallback,this.buttonText}); static _viewmodel fromStore(Store<AppState> store) { return new _viewmodel( buttonText: store.state.currentUser != null ? 'Log Out' : 'Log in with Google',onpressedCallback: () { if (store.state.currentUser != null) { store.dispatch(new logout()); } else { store.dispatch(new LogIn()); } }); }}解决方法 您可以通过3种不同的方式实现此目的:
>直接调用导航器(不使用viewmodel),但这不是一个干净的解决方案.
>设置navigatorKey并在中间件中使用它,如here所述
>另一个解决方案是我在here中解释的,它将Navigator传递给Action类并在中间件中使用它
总而言之,您可能希望使用中间件来进行导航.
总结以上是内存溢出为你收集整理的颤动 – 状态改变后如何路由到不同的屏幕?全部内容,希望文章能够帮你解决颤动 – 状态改变后如何路由到不同的屏幕?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)