android - 在 React Native 中重新加载时更新初始 Prop

标签 android react-native

我有一个 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 的工作方式,简单来说,是这样的;

  1. native 应用程序启动,调用 getLaunchOptions 等方法。
  2. Javascript VM 开始运行
  3. 您的 JS 包代码开始由 JS VM 解释
  4. 应用程序开始运行(JS VM 与 native 线程和所有其他魔法对话)

当您摇晃以重新加载或激活热重新加载时,您实际上是在跳过第 1 步和第 2 步。因此,对于 JS 代码的任何状态或更改,您都会像重新启动应用程序一样体验它们,但是 不是 native 状态和/或更改。因此你需要杀死应用程序并重新启动它,从 android/ios 本身看到你想要的效果。

关于android - 在 React Native 中重新加载时更新初始 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45677156/

相关文章:

javascript - 如何在选项卡聚焦事件上调用异步方法?

android - React-native + Relay.js 的稳定构建

java - 如何在完成上一个 Activity 后刷新 Activity 中的 ListView ?

具有渐变和平铺图像的 Android 背景

java - 如何在android中使用setTag()和getTag设置按钮Click事件的通用方法?

react-native - 如何在 native react 中聚焦 <WebView>?

javascript - react native : Background Image not being shown

Android 背景图片适配屏幕无拉伸(stretch)

android - 如何使用 NDK 定位多个架构?

ios - 在 OS X 上使用 ndenv 设置 React Native