React Native(Android Native 模块):在另一个类中访问 ReactContext?

ant*_*ate 6 java android react-native

我想在 MyCustomModuleClass 中调用一个方法从另一个类扩展 ReactContextBaseJavaModule

自定义模块.java

public class MyCustomModule extends ReactContextBaseJavaModule {

  private ReactContext mReactContext;

  public MyCustomModule(ReactApplicationContext reactContext) {
    super(reactContext);
    mReactContext = reactContext;
  }

  @Override
  public String getName() {
    return "CustomModule";
  }


    private void sendEvent(String eventName, Object params) {
        mReactContext
            .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
            .emit(eventName, params);
    }    
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试这个..

其他类.java

public class OtherClass extends AnotherClass {

    @Override
    protected void eventOccurred(Context context) {
        MyCustomModule RNC = new MyCustomModule(?);//-> Can't call without ReactContext
        RNC.sendEvent("CustomEvent", ObjectData); 
    }   
}
Run Code Online (Sandbox Code Playgroud)

对不起,我对java一无所知,有人可以帮我吗?

有什么办法可以在 OtherClass 中获得 ReactContext?

ref*_*ity 8

这是我在扩展课上的做法FirebaseMessagingService

public class MyPushListener extends FirebaseMessagingService {

  @Override
  public void onMessageReceived(JSONObject message, JSONObject content){

    MainApplication application = (MainApplication) this.getApplication();

    ReactNativeHost reactNativeHost = application.getReactNativeHost();
    ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager();
    ReactContext reactContext = reactInstanceManager.getCurrentReactContext();

    if (reactContext != null) {
      WritableNativeArray params = new WritableNativeArray();
      params.pushString(message.toString());
      reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
          .emit("EVENT_HAS_TRIGGERED", params);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

来源