【发布时间】:2019-06-11 05:44:24
【问题描述】:
我这里有 2 个屏幕。首先是 LoginScreen 和 LoginFormScreen。假设 LoginScreen 有一个按钮 LoginButton :导航到 LoginFormScreen。 活动流程应该是
LoginScreen.js -> LoginFormScreen.js
这里是我的AppNavigator.js
import LoginScreen from '../screens/LoginScreen';
import LoginFormScreen from '../screens/LoginFormScreen'
export default createAppContainer(createSwitchNavigator({
Login: {screen : LoginScreen},
LoginForm: {screen: LoginFormScreen},
}, {
initialRouteName: 'Login',
}));
在我的 LoginScreen 按钮上,这里处理 onPress 的操作
<Button
title="Log In"
titleStyle={{ fontWeight: 'bold', fontSize: 18 }}
onPress={() => this.props.navigation.navigate('LoginForm')}
在我的 LoginFormScreen 上,我想一旦用户单击返回物理按钮,然后返回到上一个屏幕 (LoginScreen)。这是我的代码
constructor(props) {
super(props);
this.handleBackButtonClick = this.handleBackButtonClick.bind(this);
}
componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick);
}
handleBackButtonClick() {
this.props.navigation.dispatch(NavigationActions.back());
this.props.navigation.goBack("Login")
this.props.navigation.goBack(null)
this.props.navigation.goBack()
return true;
}
上面的所有代码都试过了,但对我没有用。检查Stackoverflow 和GitHub 上的其他解决方案,包括react-navigation homepage,但没有解决方案有效。
尝试goBack()、goBack(null)、dispatch(NavigationActions.back()),没有人能工作。
请有人帮我解决这个问题。
【问题讨论】:
标签: javascript react-native react-navigation