OGeek|极客世界-中国程序员成长平台

标题: javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:45
标题: javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript

我正在 iOS 应用程序中执行异步操作。它是由javascript触发的。完成后(在应用程序中的某个位置),我想让 javascript 知道。 我目前的解决方案是继承自RCTEventEmitter的原生模块,方法如下:

@interface MyEventEmitter : RCTEventEmitter
// ...
end
@implementation
- (void)giveSomethingToJSNSString *)something {
  [self sendEventWithName"SOME_NAME" body:something];
}
@end

然后,当我的异步工作完成后,我调用这个方法:

MyEventEmitter *emitter = [[MyEventEmitter alloc] init];
[emitter giveSomethingToJS{}];

很明显,emitter.bridge 为 nil,应用程序因断言 bridge != nil 而崩溃。那么我应该如何获得桥梁并让 *emitter(实例)知道。或者我怎样才能在初始化桥接的情况下获得正确的实例?

提前致谢!



Best Answer-推荐答案


问题在于,在 React-Native iOS SDK 中,RCTEventEmitter 子类不应由您初始化。 React-Native SDK 实际上处理你的 RCTEventEmitters 的初始化。

正如 Arthur 指出的,使用 NSNotificationCenter 与您的 RCTEventEmitter 进行通信是一个很好的策略。如果您需要指向这些事件发射器的指针,您还可以创建一个自定义单例类并在初始化时向其注册 RCTEventEmitter。

关于javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38470897/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4