由于剛接觸RN熊尉,目前在做的RN項目里我沒有嘗試著用諸如redux阳谍、flux來動態(tài)管理姜挺「嚷兀可能是我覺得項目不是很復(fù)雜沒必要去用它們(最主要是我懶得去看它們把它們應(yīng)用到項目里,等到實在需要用的時候...)
今天遇到一個問題就是點(diǎn)擊back按鈕返回到上一頁的時候要刷新某條數(shù)據(jù)伦忠,因為在此頁修改了某個變量要在上一頁展現(xiàn)出來恳守。搜索了一下發(fā)現(xiàn)打多少人建議用redux易迹,但我還是執(zhí)著夭委,輾轉(zhuǎn)找到可以通過發(fā)送通知若河,故記錄一下能岩。
首先需要在頁面注入DeviceEventEmitter,話不多說上代碼,
// 這是 firstPage 接受通知刷新數(shù)據(jù)的頁面
componentDidMount() {
DeviceEventEmitter.addListener('ChangeData', (data) => { // 建立一個通知
this.setState({
name: data.name
});
});
}
// 這是 secondPage 頁面將要離開的是時候發(fā)送通知
componentWillUnmount() {
DeviceEventEmitter.emit('ChangeData', {
email: this.state.email
});
}
我覺得發(fā)通知就是用來傳遞參數(shù)吧萧福,當(dāng)然也可以觸發(fā)一些方法拉鹃。