android – 如何理解React Native中“向Javascript发送事件”中的“ReactContext”

android – 如何理解React Native中“向Javascript发送事件”中的“ReactContext”,第1张

概述我想使用方法sendEvent(),但是如何获取ReactContext reactContext? private void sendEvent(ReactContext reactContext, String eventName, @Nullable WritableMap params) {reactContext 我想使用方法sendEvent(),但是如何获取ReactContext reactContext?
private voID sendEvent(ReactContext reactContext,String eventname,@Nullable WritableMap params) {reactContext  .getJsModule(DeviceEventManagerModule.RCTdeviceeventemitter.class)  .emit(eventname,params);}
解决方法 我通过在MainActivity类上保存对ReactInstanceManager的静态引用,并添加了一个public static getContext()方法来暂时解决了这个问题.它感觉不对,但似乎有效.
public final class MainActivity extends ReactActivity {    private static ReactInstanceManager sReactInstanceManager = null;    /* [...] */    @OverrIDe    protected ReactInstanceManager createReactInstanceManager() {        ReactInstanceManager manager = super.createReactInstanceManager();        sReactInstanceManager = manager;        return manager;    }    public static ReactContext getContext() {        if (sReactInstanceManager == null){            // This doesn't seem to happen ...            throw new IllegalStateException("Instance manager not available");        }        final ReactContext context = sReactInstanceManager.getCurrentReactContext();        if (context == null){            // This really shouldn't happen ...            throw new IllegalStateException("React context not available");        }        return context;    }    /* [...] */}

createReactInstanceManager()由ReactActivity的onCreate()方法调用,所以我认为可以安全地假设sReactInstanceManager将指向正确的实例,但不要相信我的话.

总结

以上是内存溢出为你收集整理的android – 如何理解React Native中“向Javascript发送事件”中的“ReactContext”全部内容,希望文章能够帮你解决android – 如何理解React Native中“向Javascript发送事件”中的“ReactContext”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1135637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存