React Native vs ReactJS中的componentWillReceiveProps

时间:2017-08-06 14:57:02

标签: javascript reactjs react-native react-navigation

我正在将我的React Webapp转移到React Native版本。

在React Native中,我在登录页面中有这个。我正在使用react-navigation。

componentWillReceiveProps(nextProps) {
    const { requestStatus, currentUser } = nextProps
    const getUserInProgress = get(requestStatus, GET_MY_DETAILS, true)

    if (!getUserInProgress) {
      if (currentUser) {
        currentUser.verified_mobile ? this.props.navigation.navigate('Dashboard') : this.props.navigation.navigate('VerifyMobile')
      } else if (!currentUser) {
        console.log('not logged in')
      }
    }
  }

因此,在登录页面上,它会获取用户详细信息并检查移动设备是否已经过验证,如果不是,请转到验证移动设备页面。

在验证移动页面上,当进行调用时,登录页面上的此componentWillReceiveProps仍会运行,即使它不是当前活动页面。

我在ReactJS中有相同的逻辑/代码,它的行为完全不同。

React Native是正常的吗?

编辑:

让我澄清一下我的问题。

当我不在登录页面上且我在验证移动页面上时。尽管该页面在历史记录中,但componentWillReceiveProps仍在运行。当我构建reactjs应用程序时,这不会发生。它只发生在react本机应用程序中。所以我想知道这是历史堆栈中的页面运行其componentWillReceiveProps的正常行为吗?

1 个答案:

答案 0 :(得分:0)

该函数仍然在react-native中执行,因为它在堆栈中仍处于活动状态,而在反应应用程序中,只有显示的页面处于活动状态,因此其他页面中的功能被禁用'从某种意义上说。