在項目中请敦,不知道大家有沒有遇到這樣的一個問題贸营,比如說有兩個頁面A,B贾漏。A頁面中有某個按鈕點擊后可以跳轉到B頁面惑申,現(xiàn)在有一個需求就是具伍,我在B頁面中做了某些操作,然后點擊回退按鈕圈驼,回到A頁面人芽,A頁面中的數(shù)據(jù)也需要刷新過來。嗯绩脆,如果是做過android開發(fā)的朋友一定會知道萤厅,解決這樣的需求的方法有很多,比如可以使用activity的生命周期靴迫,也可以使用廣播等等惕味,但是如果在react native中呢?玉锌?
我們看一下官網(wǎng)可以知道名挥,react native的生命周期不是針對于頁面的,而是組件主守,什么意思呢禀倔?也就是說這個生命周期是組件的生命周期,而不是頁面的生命周期参淫,頁面在跳轉的時候救湖,頁面就會回調相應的生命周期的方法,但是組件在頁面跳轉的時候不一定會回調相應的生命周期方法涎才,所以react native中捎谨,使用生命周期這個方式來刷新頁面,并不是最好的選擇憔维。那么react native中有沒有一個類似與廣播這樣的東東呢涛救。有的,就是這個東西:DeviceEventEmitter.
在頁面A中進行注冊:
import? {
? ? DeviceEventEmitter
}?from?'react-native';
//注冊這個監(jiān)聽事件
componentDidMount(){
? this.listener=DeviceEventEmitter.addListener('xxxName',()=>{});
};
//在組件銷毀的時候要將其移除
componentWillUnmount(){
? ? this.listener.remove();
};
在頁面B中就可以通知A頁面了:
//發(fā)送通知
DeviceEventEmitter.emit('userNameDidChange', '通知來了');
這樣业扒,處理刷新很方便检吆。可以省去很多異步回調代碼量程储。