Android原生会用到广播,接口,回调等方法来实现发送和接受通知以及通信。
React Native也有一套自己的注册监听事件,组件是DeviceEventEmitter。
使用DeviceEventEmitter前需添加
import {
AppRegistry,
StyleSheet,
Text,
View,
DeviceEventEmitter
} form 'react-native';
举例:当用户退出,我们需要改变其他页面的状态
userInfo.userLogout((success) => {
if (success) {
DeviceEventEmitter.emit('UserBind', {
userBind:false,
walletSum:0.00,
couponNum:0}
);
}
});
然后其他页面注册监听,获取消息,去改变数据或者UI
DeviceEventEmitter.addListener('UserBind', (events) => {
this.setState({
userBind : events.userBind,
walletSum : events.walletSum,
couponNum : events.couponNum
});
}
);
Android原生代码也可以向React Native发送消息
WritableMap params = Arguments.createMap();
params.putString("message",msg.obj.toString());
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(eventName, params);
网友评论