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”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)