【问题标题】:DevSettings.reload() for logout in React NativeDevSettings.reload() 用于在 React Native 中注销
【发布时间】:2020-08-07 02:17:27
【问题描述】:

问题

我正在将我的混合应用程序的注销功能从原生迁移到反应原生。

要求:

  • 它适用于生产环境和设备
  • 它导航到应用程序的根屏幕(登录屏幕)
  • 它清除了 redux 存储
  • [很高兴]它取消了任何正在进行的请求

最初,我们计划这样做:how-to-reset-the-state-of-a-redux-store

理念

从 React Native 0.62.0 开始,我们现在可以访问 DevSettings 模块。 DevSettings 有一个原生桥,可以reload react-native 环境。但是 DevSettings 真的只适用于开发环境吗?

导出 DevSettings 模块,添加 addMenuItem 方法(cc068b0551 by @janicduplessis)

问题

  1. 使用重新加载与使用 redux 操作注销的权衡是什么?
  2. 我应该在生产应用中使用重新加载吗?

编辑:答案

  1. 产品不允许重新加载 (code)
  2. react-native-restart 非常适合我的用例。

【问题讨论】:

    标签: reactjs react-native redux react-redux react-native-bridge


    【解决方案1】:

    这是不允许在 prod 中使用 devSettings 的代码行

    import NativeDevSettings from '../NativeModules/specs/NativeDevSettings';
    import NativeEventEmitter from '../EventEmitter/NativeEventEmitter';
    
    class DevSettings extends NativeEventEmitter {
      ...
      reload(reason: string) {
        if (typeof NativeDevSettings.reloadWithReason === 'function') {
          NativeDevSettings.reloadWithReason(reason || 'Uncategorized from JS');
        } else {
          NativeDevSettings.reload();
        }
      }
      ...
    }
    
    // Avoid including the full `NativeDevSettings` class in prod.
    class NoopDevSettings {
      addMenuItem(title: string, handler: () => mixed) {}
      reload() {}
    }
    
    module.exports = __DEV__ ? new DevSettings() : new NoopDevSettings();
    

    来自Libraries/Utilities/DevSettings

    【讨论】:

      【解决方案2】:

      DevSettings 模块公开了自定义设置的方法 开发人员正在开发中

      DevSettings 仅用于开发环境,在发布模式下不起作用。 最好的解决方案是关注您在问题中分享的link

      【讨论】:

      • 啊,是的,我在文档中读到过,但文档非常稀疏。为什么只在开发中?它是否强制它只能用于开发?
      • 这只是一种通过用户交互重新加载应用的新方法,但不可能在发布时重新加载应用
      • 你能详细说明一下吗?代码在哪里说不可能?编辑:发现了一些东西github.com/facebook/react-native/blob/…
      猜你喜欢
      • 2018-06-15
      • 2022-01-22
      • 2020-09-01
      • 2018-01-15
      • 2021-10-22
      • 1970-01-01
      • 2020-02-17
      • 2023-02-23
      • 1970-01-01
      相关资源
      最近更新 更多