2016-12-07 42 views
1

当前,当我按下android硬件返回键时,反应路由器通量将调用Actions.pop()方法。无论如何,为了防止它在后面的场景中调用防止返回的方法,因为我想跳到其他场景。从现场例如A到场景B,场景B场景C,当按回到场景C键,我想去现场答:我试过反应原生路由器通量:重写android硬件返回键

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

尝试从场景C中按下返回按钮时从“路线”中删除场景B. – Prasanna

回答

0

根据BackAndroid docs

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

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

另一件值得一提的事情是,你在componentWillMount中添加了事件监听器。
如果路由器是此组件的后代孩子,这意味着您在路由器安装之前注册回退事件,以便路由器侦听器将在您的侦听器之后注册,并且将在侦听器之前调用。
尝试注册到ComponentDidMount中的事件。这个方法在路由器被安装并且它的监听器被注册之后被调用。