Я пытаюсь передать событие из android native для передачи данных в RN.
Внутри onCreate () MainApplication. java Я генерирую событие, как показано ниже:
public class MainApplication extends NavigationApplication implements ReactApplication {
/// other codes
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
WritableMap params = Arguments.createMap();
params.putString("key", "value");
ReactInstanceManager mReactInstanceManager = getReactNativeHost().getReactInstanceManager();
ReactApplicationContext context = (ReactApplicationContext) mReactInstanceManager.getCurrentReactContext();
mReactInstanceManager.addReactInstanceEventListener(new ReactInstanceManager.ReactInstanceEventListener() {
public void onReactContextInitialized(ReactContext reactContext) {
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("MyEvent", params);
}
});
}
}
Мой компонент RN
const App = () => {
useEffect(() => {
const eventListener = DeviceEventEmitter.addListener('MyEvent', function (e,) {
console.log('test event', e);
});
return () => {
eventListener.remove();
};
}, []);
return (
<View>
///
</View>
)
}
Я не получаю никаких ошибок в Logcat от AndroidStudio и отладчика RN. Может кто-нибудь сказать мне, почему MyEvent никогда не увольняют?