我在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;
}
答案 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