我有登录屏幕
op
当我按下我的Android时,它运行正常。应用程序退出没有堆栈历史记录
然后在我的主屏幕上,我有一个抽屉导航器,带有注销菜单
export default class Login extends Component {
_navigateToHome(){
this.props.navigator.immediatelyResetStack([Router.getRoute('home')], 0);
}
render(){
return(
<TouchableOpacity
onPress={() => {this._navigateToHome();}}
activeOpacity={0.7}>
<Text>Login</Text>
</TouchableOpacity>
);
}
}
当我从导航栏中按退出时,它会返回登录屏幕,但是当我从登录屏幕按回来时,应用程序没有退出并且我收到了这个警告:
export default class Home extends Component {
render(){
<DrawerNavigation
drawerPosition="left"
drawerWidth={300}
initialItem="home"
>
<DrawerNavigationItem
id={item.route}
selectedStyle={styles.selectedItemStyle}
renderTitle={isSelected => renderTitle('Home', isSelected)}
>
<View>Home Page</View>
</DrawerNavigationItem>
<DrawerNavigationItem
id={item.route}
selectedStyle={styles.selectedItemStyle}
renderTitle={isSelected => renderTitle('Logout', isSelected)}
onPress={()=> {
this.props.navigator.immediatelyResetStack([Router.getRoute('login')], 0);
}}
/>
</DrawerNavigation>
}
}
我也尝试了另一种解决方法,我使用Possible Unhandled Promise Rejection (id: 0): TypeError: undefined is not an object (evaluating 'currentNavigatorState.index')
代替replace
,所以它就像这样
immediatelyResetStack
但我仍然收到完全相同的警告信息,我也尝试将onPress={() => this.props.navigator.replace('login')}
放在登录屏幕上
BackHandler
应用程序将退出,但是当我通过android菜单按钮返回我的应用程序时,该消息仍然存在。我该如何解决这个问题?