2017-04-19 142 views
0

我想回到以前的觀點在我使用此代碼反應原生的Android後退按鈕

componentDidMount() { 
    React.BackAndroid.addEventListener('hardwareBackPress',() => { 
     AppViewStore.popRoute({ key: 'itemlist' }) 
    }); 
    var finaldata={user:1}; 
    OrderViewStore.createOrder(finaldata); 
    OrderViewStore.getcartcount(finaldata); 
    } 

popRoute在AppViewStore

popRoute() { 
    this.routeStack.pop(); 
    this.routeStack2 = this.routeStack; 
    } 

反應原生應用程序,但它拋出錯誤

undefined is not an object 
(evaluating '_react2.default.BackAndroid.addEventListener') 

修正後=====它可以工作

componentWillMount() { 
    BackAndroid.addEventListener('hardwareBackPress',() => { 
     AppViewStore.popRoute({ key: 'itemlist' }) 
     return true; 
    }); 

回答

0

BackAndroid不反應,但陣營本土的一部分,所以在使用之前,你應該導入它是這樣的:

import { 
    BackAndroid, 
} from 'react-native'; 

而且使用它像:

BackAndroid.addEventListener 

代替:

React.BackAndroid.addEventListener 
+0

我已經添加了BackAndroid,這不是問題 – Daniel

+0

@Daniel ok,我已經更新了我的回答 – Cherniv

+0

是否需要將它添加到componentDidmount和componentWillMount上。現在它沒有顯示任何錯誤,但窗口關閉 – Daniel