正向傳值搞定了,免不了要方向傳值,這里我采用的是類似iOS通知的方法
思路:第二個(gè)頁面點(diǎn)擊按鈕沪铭,發(fā)送通知,然后第一個(gè)頁面接受通知偏瓤,處理事件杀怠,so......
RN里面需要用到一個(gè)DeviceEventEmitter,監(jiān)聽厅克,相當(dāng)也iOS的通知
需要導(dǎo)入
import {
AppRegistry,
View,
Text,
StyleSheet,
Navigator,
TouchableOpacity,
DeviceEventEmitter,//監(jiān)聽
}from 'react-native';
在需要的地方(第二個(gè)頁面)
buttonAction() {
DeviceEventEmitter.emit('changeData','回傳參數(shù)');
}
其他地方(第一個(gè)頁面)
//在這個(gè)方法里面注冊(cè)監(jiān)聽
//changeData 就是監(jiān)聽的名字,類似通知的名字
//value就是上面對(duì)應(yīng)的“回傳參數(shù)”赔退,就是其他地方傳過來的值
//兩個(gè)參數(shù),一個(gè)是監(jiān)聽名字证舟,一個(gè)是方法(收到監(jiān)聽處理方法)
componentDidMount() {
this.subscription = DeviceEventEmitter.addListener('changeData', (value) =>{
this.setState({
paramData:value,
});
console.log('傳過來的值是:'+value);
});
}
//頁面移除時(shí)移除監(jiān)聽
//類似iOS dealloc里面移除通知
componentWillUnmount() {
this.subscription.remove();
}
這樣就可以反向傳值了(其實(shí)是全局傳值......)
項(xiàng)目地址:https://github.com/chjwrr/RN-NatigatorTest