React native:Android设备后退按钮

时间:2018-01-20 13:43:54

标签: react-native react-navigation

我在Android设备后退按钮上遇到一个问题。当我登录应用程序并进入主屏幕和主屏幕时,如果我按下设备后退按钮,则会再次将其重定向到我的登录屏幕,而不是背景。

当应用程序成功登录应用程序(即从主屏幕)后,当我按下后退按钮时,请帮助我了解应用程序如何进入后台状态。

这是我的代码,

Login.js

//Click on login button call this method
  home()
  {
    const { navigate } = this.props.navigation;
    navigate('Home', { name: 'Home'});

  }

Home.js:

constructor(props) {
    super(props)
    this.handleBackButtonClick = this.handleBackButtonClick.bind(this);
}

componentWillMount()
{
  console.disableYellowBox = true;
  console.log(this.props.navigation.state.routeName);

    this.callapi();
  }

componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick);
}

handleBackButtonClick() {
  if (this.props.navigation.state.routeName == 'Home') {
  //  this.props.navigation.goBack(null);
//  BackHandler.exitApp()
this.props.navigation.dispatch(resetAction)
    }
    return false;

}

1 个答案:

答案 0 :(得分:0)

这是因为当登录返回true时,您正在将用户推送到主页。您必须重置路由器的堆栈。

我个人使用Wix的react-native-navigation而从未使用react-navigation。但是通过查看他们的文档,它表明您可以通过添加此代码块来重置堆栈:

import { NavigationActions } from 'react-navigation'

const resetAction = NavigationActions.reset({
  index: 0,
  actions: [
    NavigationActions.navigate({ routeName: 'Profile'})
  ]
})
this.props.navigation.dispatch(resetAction)

可以找到更多信息here