react-native 事件发射器

Android原生向js发送数据:

为了向js传递事件我们需要在原生页面用到RCTDeviceEventEmitter,它是原生模块和js之间的一个事件发射器;
//eventName是要发射的事件的名称,params为事件携带的参数;
WritableMap params = Arguments.createMap();
params.putString("message",msg.obj.toString());
private void sendEvent(ReactContext reactContext,String eventName, @Nullable WritableMap params) {
    reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
            .emit(eventName, params);
}
其中:
RCTDeviceEventEmitter deviceEventEmitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) 
deviceEventEmitter.emit(eventName, params)  //发射事件

//js接受数据, js为参数名(message), events为传递的数据events
DeviceEventEmitter.addListener('名称',(events) ={使用数据events}); 
componentDidMount() {
    //注册扫描监听,
    DeviceEventEmitter.addListener('onScanningResult',this.onScanningResult);
}
onScanningResult = (e)=> {
    this.setState({
        scanningResult: e.result,
    });
}
//在组件销毁的时候,移除监听
componentWillUnmount(){
    DeviceEventEmitter.removeListener('onScanningResult',this.onScanningResult);//移除扫描监听
}

查考文档:
事件发射器-详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值