BackHandler不会返回超过1个屏幕

Jus*_*Lok 6 react-native react-navigation

我在每个屏幕上都有这个代码.按下android后退按钮返回1个屏幕.再次按下android后退按钮不会做任何事情.只要堆栈中有更多屏幕,预期结果就是继续回归.少了什么东西?

componentWillMount() {
    BackHandler.addEventListener('hardwareBackPress', () => {
        this.props.navigation.goBack();
        return true;
    });
}

componentWillUnmount() {
  BackHandler.removeEventListener('hardwareBackPress')
}
Run Code Online (Sandbox Code Playgroud)

Jus*_*Lok 10

经过一些试验和错误后,此代码按预期工作.我相信我的初始代码实际上并没有删除事件监听器.

componentWillMount() {
    BackHandler.addEventListener('hardwareBackPress', this.backPressed);
}

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

backPressed = () => {
    this.props.navigation.goBack();
    return true;
}
Run Code Online (Sandbox Code Playgroud)

  • “return true”有什么用处?我遇到了和你一样的问题,添加它为我解决了...... (2认同)