我正在使用flutter_redux和google_sign_in,我希望在登录后从“登录”页面路由到其他页面。
我正在使用调度LoggedInSuccessfully
操作的中间件处理对Google的API调用。我知道我可以使用Navigator.pushNamed(context, "/routeName")
进行实际路由,但我不熟悉Flutter和Redux,我的问题是我只是不知道 where 来调用它。
以下代码适用于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());
}
});
}
}