2017-06-13 87 views

回答

4

补回来处理工作,集中配置,我通常有一个组件的处理函数调用AppNavigation这是路由器组件的父节点。

它看起来是这样的:

<AppNavigation> 
    <Router> 
     <Scene key="root"> 
     {/* other scenes */} 
     </Scene> 
    </Router> 
</AppNavigation> 

处理中AppNavigation背部按钮,然后会相对简单:

import React, {Component} from "react"; 
import {BackAndroid} from "react-native"; 
import {Actions} from "react-native-router-flux"; 

class AppNavigation extends Component { 

    constructor(props) { 
     super(props); 
    } 

    componentDidMount() { 
     //listens to hardwareBackPress 
     BackAndroid.addEventListener('hardwareBackPress',() => { 
      try { 
       Actions.pop(); 
       return true; 
      } 
      catch (err) { 
       console.debug("Can't pop. Exiting the app..."); 
       return false; 
      } 
     }); 
    } 

    componentWillUnmount(){ 
     console.log("Unmounting app, removing listeners"); 
     BackAndroid.removeEventListener('hardwareBackPress'); 
    } 

    render() { 
     return this.props.children; 
    } 
} 

export default AppNavigation; 

附:不要忘了区分Android和iOS,因为我相信iOS没有后退按钮。

+0

谢谢。它的工作 –

+0

伟大的帮助! :)你会介意接受我的答复作为答案吗?谢谢! – Siwananda

相关问题