【问题标题】:When to use redux in React Native?什么时候在 React Native 中使用 redux?
【发布时间】:2021-06-18 16:22:40
【问题描述】:

我正在尝试构建一个应用,它有 3 个减速器

  1. AccountDetails 它包含所有类型的用户产品
  2. GeneralData(例如设备的唯一 ID、令牌等)
  3. 购物车

我和我的同事目前正在构建一个有 6 个屏幕的注册屏幕(ui/ux 团队要求这样做)

  1. 输入用户名
  2. 输入密码并确认密码
  3. 输入DoB
  4. 输入邮箱
  5. 屏幕提交所有四个数据 注意:我们使用 react-navigation

所以我的同事建议使用 redux 来处理这种数据流,我认为创建另一个 redux 用于注册有点“矫枉过正”,为什么不将用户名数据、密码、DoB 和电子邮件传递给 route.params并将其提交到最后一个屏幕,我们将有很多 Reducer 来处理注册、恢复密码、恢复用户名,也许还有其他事情。

但我们都想让这个应用程序可扩展且更易于维护,但我真的不知道正确的方法

【问题讨论】:

    标签: react-native redux react-redux react-navigation redux-saga


    【解决方案1】:

    很多人采取的方法是希望在任何情况下都使用 Redux。许多其他人试图避免使用 Redux,仅在绝对必要时使用它。

    您提到您和您的同事都希望使应用程序可扩展且更易于维护。您可以为正在考虑的两种方式中的任何一种进行论证,因此任何一种方式都不一定是错误的

    然而,普遍的共识是你应该将你的表单状态放入 Redux。 Redux 有an FAQ page on this question here.

    【讨论】:

    • 我完全同意你不要在 Redux 中放置表单状态,但其他同事同意在任何情况下都向 redux 发送垃圾邮件,所以我只是同意他们
    【解决方案2】:

    考虑回答“我应该为此使用 Redux 吗?”的一般方式是该信息是否会在整个应用程序的其他地方使用。

    所以对于你的场景,你有:

    • 账户详情 -> 100% 使用 Redux
    • 一般细节 -> 也许。通常有更简单的令牌方法,例如将它们放入 LocalStorage 或 AsyncStorage
    • 购物车 -> 可能。再次问问自己,您是否会在多个靠近的屏幕中使用这些信息

    根据您与同事的辩论,我认为答案是两者兼而有之。在屏幕之间传递这些数据非常好(并且在每个步骤中都使用 Redux 肯定是矫枉过正),但是您需要在成功注册结束时将所有这些值添加到 Redux。因为这些是您之前提到的“帐户详细信息”,不是吗?

    【讨论】:

      【解决方案3】:

      您的项目很简单,只有 6 个屏幕。在简单项目的情况下,您不必使用 Redux。 是否使用 Redux 取决于您的决定。 但是随着项目的扩展,您会发现使用 route.params 处理所有状态非常困难。然后你需要使用一些特殊的东西来有效地处理状态,那就是 Redux。 Redux 不是什么特别的东西,而是集中的状态管理系统。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        • 1970-01-01
        • 2020-02-11
        相关资源
        最近更新 更多