我有一个 React Native 应用程序 (Android),它从我的 Activity 委托(delegate)中返回一些初始 Prop :
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< 的初始值
被使用。
是否有一个钩子(Hook)可以让我在重新加载应用程序时更新初始 Prop 是什么?
最佳答案
React Native 的工作方式,简单来说,是这样的;
- native 应用程序启动,调用 getLaunchOptions 等方法。
- Javascript VM 开始运行
- 您的 JS 包代码开始由 JS VM 解释
- 应用程序开始运行(JS VM 与 native 线程和所有其他魔法对话)
当您摇晃以重新加载或激活热重新加载时,您实际上是在跳过第 1 步和第 2 步。因此,对于 JS 代码的任何状态或更改,您都会像重新启动应用程序一样体验它们,但是 不是 native 状态和/或更改。因此你需要杀死应用程序并重新启动它,从 android/ios 本身看到你想要的效果。
关于android - 在 React Native 中重新加载时更新初始 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45677156/