React Native:是否可以在应用程序重新加载时保留本机 Java 变量值?

重新加载 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());

    }


}


红糖糍粑
浏览 97回答 1
1回答

一只名叫tom的猫

每次重新加载 JS 代码都会创建一个新的 CustomModule 实例来重新初始化组件。我应该将组件列表设置为静态类变量,以便它只被初始化一次。public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener {&nbsp; &nbsp; public static List<JsonObject> components = new ArrayList<>();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java