2017-06-13 89 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

相關問題