javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript
<p><p>我正在 iOS 应用程序中执行异步操作。它是由javascript触发的。完成后(在应用程序中的某个位置),我想让 javascript 知道。
我目前的解决方案是继承自<code>RCTEventEmitter</code>的原生模块,方法如下:</p>
<pre><code>@interface MyEventEmitter : RCTEventEmitter
// ...
end
@implementation
- (void)giveSomethingToJS:(NSString *)something {
;
}
@end
</code></pre>
<p>然后,当我的异步工作完成后,我调用这个方法:</p>
<pre><code>MyEventEmitter *emitter = [ init];
;
</code></pre>
<p>很明显,<code>emitter.bridge</code> 为 nil,应用程序因断言 <code>bridge != nil</code> 而崩溃。那么我应该如何获得桥梁并让 <code>*emitter</code>(实例)知道。或者我怎样才能在初始化桥接的情况下获得正确的实例?</p>
<p>提前致谢!</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>问题在于,在 React-Native iOS SDK 中,<code>RCTEventEmitter</code> 子类不应由您初始化。 React-Native SDK 实际上处理你的 RCTEventEmitters 的初始化。 </p>
<p>正如 Arthur 指出的,使用 <code>NSNotificationCenter</code> 与您的 <code>RCTEventEmitter</code> 进行通信是一个很好的策略。如果您需要指向这些事件发射器的指针,您还可以创建一个自定义单例类并在初始化时向其注册 RCTEventEmitter。 </p></p>
<p style="font-size: 20px;">关于javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/38470897/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/38470897/
</a>
</p>
页:
[1]