Jer*_*rry 4 javascript reactjs react-native
根据React Native 文档,您可以使用sendAppEventWithName从本机代码向JS发送事件.但在我的XCode中,代码建议告诉我这个方法已被弃用.
此问题表明sendDeviceEventWithName应该可以工作,但实际上它也已弃用.
将事件发送给JS的实际方法是什么?
更新:请看一下这个问题,其中很多人提供了很多有用的解决方案.
我通过阅读它的源代码来解决这个问题.使用RCTEventEmitter课程.
MyModule.h
#import "RCTEventEmitter.h"
#import "RCTBridgeModule.h"
@interface MyModule : RCTEventEmitter <RCTBridgeModule>
@end
Run Code Online (Sandbox Code Playgroud)
MyModule.m
@implementation MyModule
RCT_EXPORT_MODULE();
- (void)tellJS {
[self sendEventWithName:@"sayHello" body:@"Hello"];
}
@end
Run Code Online (Sandbox Code Playgroud)
因此,您可以通过调用方法将sayHello带有数据的事件发送Hello到JavaScript tellJS.
在JavaScript方面,您必须使用该NativeModules模块来获取此本机模块并将其包装在NativeEventEmitter类中,以便您可以接收事件.
import { NativeModules, NativeEventEmitter } from 'react-native'
const myModuleEvt = new NativeEventEmitter(NativeModules.MyModule)
myModuleEvt.addListener('sayHello', (data) => console.log(data))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |