Я хочу эмулировать поведение использования , где он слушает переменную React, а затем запускает другое поведение при изменении этой переменной. Тем не менее, я хочу, чтобы она слушала переменную в одном из моих классов Java из Android -части моей программы. Я знаю, что могу передать переменную через @reactmethod, но тогда мне нужно явно назвать этот метод, а не просто слушать переменную. Это для функции использования и поведения триггера при изменении? up .
Я прочитал, что я должен проверить, если reactcontext.hasactivecatalystinstance () А если нет, то не отправляйте. Это мешает приложению нарушать, но проблема в том, что оно всегда ложное . Независимо от того, что, даже если React явно работает (и я получаю журналы из него и т. Д.) hasactivecatalystinstance всегда ложно. hasactivecatalystinstance .
Вот какой -то пример кода:
public class MyModule extends ReactContextBaseJavaModule {
MyServer _server;
MyModule(ReactApplicationContext context) {
super(context);
try {
_server = new Server();
sendHasValidServer(true);
}
catch(Exception e) {
sendHasValidServer(false);
}
}
@ReactMethod
public void addListener(String eventName) {
Log.e(TAG, "ADDING LISTENER");
}
@ReactMethod
public void removeListeners(Integer count) {
Log.e(TAG, "REMOVING LISTENER");
}
private void sendHasValidServer(boolean valid) {
ReactContext reactContext = (ReactContext) getReactApplicationContext();
if (reactContext == null)
return;
if(!reactContext.hasActiveCatalystInstance()) {
Log.e(TAG, "No active catalyst");
return;
}
WritableMap params = Arguments.createMap();
params.putString("hasValidServer", valid + "");
// Get EventEmitter from context and send event to it
reactContext
.getJSModule(MyModule.RCTDeviceEventEmitter.class)
.emit("onHasValidServer", params);
}
}
Подробнее здесь: https://stackoverflow.com/questions/756 ... act-native