菜鸟教程小白 发表于 2022-12-12 11:45:07

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]
查看完整版本: javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript