1

目前,当我按下 android 硬件返回键时,react 路由器 Flux 将调用 Actions.pop() 方法。有没有办法阻止它调用阻止返回上一个场景的方法,因为我想跳转到其他场景。从示例场景A到场景B,场景B到场景C,当在场景C中按下返回键时,我想去场景A。我试过了

componentWillMount() {
    // Disable back button by just returning true instead of Action.pop()
    BackAndroid.addEventListener('hardwareBackPress', () => {
      return true;
    });
  };
4

1 回答 1

0

根据BackAndroid 文档

检测硬件后退按钮按下,并以编程方式调用默认后退按钮功能以在没有侦听器或没有侦听器返回 true 时退出应用程序。事件订阅以相反的顺序被调用(即最后注册的订阅在前),如果一个订阅返回 true,那么之前注册的订阅将不会被调用。

因此,在特定场景中,您可以添加一个 BackAndroid 侦听器,在此侦听器中执行您想要的任何操作并返回 true;

另一件值得一提的是,您在 componentWillMount 中添加了事件侦听器。
如果路由器是该组件的后代子级,这意味着您在挂载路由器之前注册了 back 事件,因此路由器侦听器将在您的侦听器之后注册,因此将在您的侦听器之前调用。
尝试在 ComponentDidMount 中注册事件。在挂载路由器并注册其侦听器后调用此方法。

于 2016-12-07T10:12:57.403 回答