在directResetStack之后,导航无法按下android

时间:2017-08-07 08:53:49

标签: javascript android react-native expo ex-navigation

我有登录屏幕

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菜单按钮返回我的应用程序时,该消息仍然存在。我该如何解决这个问题?

0 个答案:

没有答案