2017-07-28 60 views
1

我有三個屏幕MyVault,添加文件和添加回購。從Myvault有一個按鈕添加新的文檔,點擊添加文檔將打開。現在在添加文檔,如果用戶按下後退按鈕,然後我想彈出一個確認。我有一個按鈕裏面添加文檔屏幕打開添加回購屏幕,用戶可以選擇一個回購,當他們點擊添加該屏幕將被彈出,添加文檔屏幕將刷新回購數據。如果我在ComponentDidMount中添加一個監聽器,然後在ComponentWillUnmount中刪除它,那麼問題是,即使當我按回添加回購時,彈出窗口也會出現。我不想在任何其他屏幕上彈出,我只是想要添加文檔。如何爲特定屏幕添加Android後端處理程序?

注:我使用的反應本地路由器的流量路由

我已經發布了這個問題這個環節也:https://github.com/facebook/react-native/issues/15248

+0

只需添加BackHandler事件在那個屏幕上。 –

回答

0

我能夠用的OnEnter的幫助下做到這一點,的OnExit反應本地路由器通量的道具

0

react-native-router-fluxdocumentation,事件處理程序可以添加到按鈕。您可以使用onExit,onLeftonRight。喜歡的東西:

<Scene 
    key="AddDoc" 
    component={AddDoc} 
    onExit={() => console.log('your modal pop up logic')} 
/> 
0

試試下面的方法

import React from 'react'; 
import {View, Text, AlertPlatform,BackAndroid} from 'react-native'; 

class App extends React.Component { 

    constructor(props) { 
     super(props); 
    } 


    onBackAndroid =() => { 
     backButtonPressedOnceToExit ? BackAndroid.exitApp() : ""; 
     backButtonPressedOnceToExit = true; 

     setTimeout(() => {backButtonPressedOnceToExit = false;}, 2000); 
     return true; 
    } 

    componentWillMount =() => BackAndroid.addEventListener('hardwareBackPress', this.onBackAndroid.bind(this)); 

    componentWillUnmount =() => { 
     BackAndroid.removeEventListener('hardwareBackPress', this.onBackAndroid.bind(this)); 
    } 


    render() { 
     return (
      // Your code 
     ); 
    } 
} 

export default App; 
相關問題