更新React Native中重新加载的初始道具

时间:2017-08-14 14:44:33

标签: android react-native

我有一个React Native应用程序(Android),它从我的活动委托中返回一些初始道具:

public class MainReactActivityDelegate extends ReactActivityDelegate {
    ...
    @android.support.annotation.Nullable
    @Override
    protected Bundle getLaunchOptions() {
        Bundle initialProps = new Bundle();
        count = ...; // count is stored in disk somewhere
        initialProps.putString("count", count );

        return initialProps;
    }
    ...
}

然后我在我的一个组件中增加count,但是当我摇动重新加载时getLaunchOptions没有被调用,并且使用1的初始值。

是否有一个钩子可以在重新加载应用程序时更新初始道具的内容?

1 个答案:

答案 0 :(得分:3)

简单地说,原生作品的反应方式如下:

  1. 启动本机应用程序,调用getLaunchOptions等方法。
  2. Javascript VM开始运行
  3. 您的JS包代码开始由JS VM解释
  4. 应用程序开始运行(JS VM与本机线程和所有其他魔术对话)
  5. 当您摇动重新加载或激活热重新加载时,您基本上是跳过步骤1和2.因此,对于JS代码的任何状态或更改,您都会体验它们,就好像您已重新启动应用程序但不是本机状态和/或更改。因此你需要杀死应用程序并重新启动它,从android / ios本身看看你想要的效果。