重新加载 JS 时,是否可以在自定义反应本机模块中维护 Java 变量的值?我想components在下面的代码中维护以进行调试。如果应用程序进入后台,它会在 onHostResume 上持续存在,但在重新加载时该值会丢失。public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener { public List<JsonObject> components = new ArrayList<>(); public CustomModule(ReactApplicationContext reactContext) { super(reactContext); reactContext.addLifecycleEventListener(this); } @ReactMethod void addComponents(component) { // add some components... components.add(component); } @Override public String getName() { return "CustomModule"; } @Override public void onHostResume() { getReactApplicationContext() .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) .emit("DEBUG_TAG", components.toString()); }}
1 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
每次重新加载 JS 代码都会创建一个新的 CustomModule 实例来重新初始化组件。我应该将组件列表设置为静态类变量,以便它只被初始化一次。
public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener {
public static List<JsonObject> components = new ArrayList<>();
}
添加回答
举报
0/150
提交
取消