Mar*_* Ma 7 android react-native
我想使用方法sendEvent(),但是如何获取ReactContext reactContext?
private void sendEvent(ReactContext reactContext,
String eventName,
@Nullable WritableMap params) {reactContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(eventName, params);}
Run Code Online (Sandbox Code Playgroud)
小智 -1
ReactInstanceManager我通过保存对类的静态引用MainActivity并添加一个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;
}
/* [...] */
}
Run Code Online (Sandbox Code Playgroud)
createReactInstanceManager()ReactActivity是由的方法调用的onCreate(),所以我认为可以安全地假设 它将sReactInstanceManager指向正确的实例,但不要相信我的话。
| 归档时间: |
|
| 查看次数: |
1274 次 |
| 最近记录: |