重新加載 JS 時(shí),是否可以在自定義反應(yīng)本機(jī)模塊中維護(hù) Java 變量的值?我想components在下面的代碼中維護(hù)以進(jìn)行調(diào)試。如果應(yīng)用程序進(jìn)入后臺,它會在 onHostResume 上持續(xù)存在,但在重新加載時(shí)該值會丟失。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貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
每次重新加載 JS 代碼都會創(chuàng)建一個(gè)新的 CustomModule 實(shí)例來重新初始化組件。我應(yīng)該將組件列表設(shè)置為靜態(tài)類變量,以便它只被初始化一次。
public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener {
public static List<JsonObject> components = new ArrayList<>();
}
添加回答
舉報(bào)
0/150
提交
取消
