繁体   English   中英

反应导航goBack不起作用

[英]react-navigation goBack doesn't works

我这里有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;
  }

尝试了上面所有这些代码,但对我无效。 StackoverflowGitHub上检查了其他解决方案,包括react-navigation主页,但是没有解决方案。

尝试使用goBack()goBack(null)dispatch(NavigationActions.back()) ,但没有人可以使用。

请有人帮我解决这个问题。

当您使用createSwitchNavigator而不是createStackNavigator ,您可以在其中推送和弹出屏幕,并在doc上说,如文档所示,一次只能看到一个屏幕,即不会显示任何堆栈

this.props.navigation.navigate('Login')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM