反应导航中的反应本机android后退按钮

新手上路,请多包涵

好吧,我有一个 react-native 具有多个屏幕的应用程序,每个屏幕都有一个顶部栏,其中有一个后退按钮,它的主要行为是按下此按钮时应用程序返回到主屏幕。我想要做的是将此行为复制到硬件后退按钮(现在通过按下硬件后退按钮应用程序关闭),我该怎么做?

更新:

我正在使用 react-navigationredux

原文由 Eugen-Andrei Coliban 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 264
2 个回答

你可以:

  1. 从“react-native”导入 BackHandler
  2. 在componentDidMount中添加(componentWillMount deprecated) BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);
  3. 像这样实现 handleBackButton handleBackButton(){ this.props.navigation.popToTop(); return true; }

popToTop 返回到堆栈中的第一个屏幕。

如果你在 Redux 中使用 react-navigation,你应该将 popToTop 作为一个动作来实现。

原文由 Paolo Dell‘Aguzzo 发布,翻译遵循 CC BY-SA 4.0 许可协议

你可以通过下面的例子来做

import { BackHandler } from 'react-native';

class App extends Component {
  constructor(props){
    super(props);
    this.backButtonClick = this.backButtonClick.bind(this);
  }

  componentDidMount() {
    BackHandler.addEventListener('hardwareBackPress', this.backButtonClick);
  }

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

  backButtonClick(){
    if(this.props.navigation && this.props.navigation.goBack){
      this.props.navigation.goBack(null);
      return true;
    }
    return false;
  }
}

原文由 Javascript Hupp Technologies 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题