ReactNative数据的发送和接收

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);

你可能感兴趣的:(ReactNative数据的发送和接收)