Reactjs 反应本机路由器流量:覆盖android硬件返回键

Reactjs 反应本机路由器流量:覆盖android硬件返回键,reactjs,react-native,react-native-router-flux,Reactjs,React Native,React Native Router Flux,当前,当我按下android硬件后退键时,react路由器流量将调用Actions.pop()方法。是否仍有阻止它调用方法以阻止返回上一个场景,因为我想跳转到其他场景。从示例场景A到场景B,场景B到场景C,当按下场景C中的后退键时,我想转到场景A。我尝试了 componentWillMount() { // Disable back button by just returning true instead of Action.pop() BackAndroid.addEvent

当前,当我按下android硬件后退键时,react路由器流量将调用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;
    });
  };
根据:

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

所以在一个特定的场景中,你可以添加一个BackAndroid监听器,在这个监听器中做任何你想做的事情,然后返回true

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

根据:

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

所以在一个特定的场景中,你可以添加一个BackAndroid监听器,在这个监听器中做任何你想做的事情,然后返回true

另一件值得一提的事情是,您在componentWillMount中添加了事件侦听器。
如果路由器是此组件的子代,这意味着您在安装路由器之前注册back事件,这样路由器侦听器将在侦听器之后注册,并且在侦听器之前调用。

请尝试注册ComponentDidMount中的事件。安装路由器并注册其侦听器后调用此方法。

尝试从“路由”中删除场景B,同时从场景C中按后退按钮。尝试从“路由”中删除场景B,同时从场景C中按后退按钮。