我正在将我的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的正常行为吗?
答案 0 :(得分:0)
该函数仍然在react-native中执行,因为它在堆栈中仍处于活动状态,而在反应应用程序中,只有显示的页面处于活动状态,因此其他页面中的功能被禁用'从某种意义上说。