使用ExNavigator和Redux登录流程?

时间:2016-04-18 07:34:29

标签: reactjs react-native redux

我正在使用ExNavigator使用React Native应用程序,我想使用Redux。我想要一个基本的登录流程,我的意思是:

  1. 用户点击"登录"正确的信息
  2. Redux通过redux-thunk或
  3. 执行常见的异步流程
  4. 当用户登录/请求成功时,请转到“配置文件路由”
  5. 我已经在网上完成了Redux登录,但是我对如何在登录工作时将ExNavigator移动到Profile路径感到困惑,因为Navigator对象似乎完全包含在组件中而不是Redux

    任何指针?

1 个答案:

答案 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)很好地配合,但正如它的名字所示,它仍然是非常实验性的。