我正在使用ExNavigator使用React Native应用程序,我想使用Redux。我想要一个基本的登录流程,我的意思是:
我已经在网上完成了Redux登录,但是我对如何在登录工作时将ExNavigator移动到Profile路径感到困惑,因为Navigator对象似乎完全包含在组件中而不是Redux
任何指针?
答案 0 :(得分:0)
我经常使用的模式是检测组件componentWillReceiveProps
中的状态更改,并从那里触发导航过渡。
假设您的状态包含属性isLoggedIn
,您在登录成功时将其设置为true
。该属性也作为prop传递给您的组件。然后你可以:
componenWillReceiveProps({isLoggedIn}) {
if (isLoggedIn && !this.props.isLoggedIn) {
this.props.navigator.push(nextRoute());
}
}
这可能不是解决问题的最优雅方式,但它有效。 React Native Navigator
,以及因此ExNavigator
构建在它之上,并不能轻易地将它自己借给Redux架构。
React Native团队正在开发一种新的导航API,目前称为NavigationExperimental
,它附带最新版本的RN。它与Redux(example)很好地配合,但正如它的名字所示,它仍然是非常实验性的。