【问题标题】:React-Native: when to go for redux state and react state in app?React-Native:何时在应用程序中进行 redux 状态和反应状态?
【发布时间】:2017-10-09 05:33:47
【问题描述】:

我在我的应用程序中实现了redux。我的场景是从一个组件导航到另一个组件时,我正在更新redux 状态。所以当我回到上一个组件时,得到最后一个redux 状态数据。

预期结果:

当我回到上一个组件时,需要处于相同的状态。我不想要最近的更改数据。

Ex:  Marie ->April, when I go back,  Marie <- April

实际结果:

它正在更新最近的更改数据。

Ex:  Marie ->April, when I go back, April <- April

我该如何为此编写应用程序结构?这里需要redux 吗?或者我应该在导航时通过作为params 传递来管理组件状态吗?

【问题讨论】:

    标签: react-native redux react-native-android


    【解决方案1】:

    我不确定我的答案是否是正确的实施方式。但目前,我正在这样做:

    组件的State 可以分散在多个位置(例如:this.state、类的字段、全局对象或 Redux)。

    我从您的问题中了解到,您正在同时处理 2 个要求:

    • 组件的部分状态需要被保留 来回穿梭。
    • 组件的另一部分状态需要共享 向后和涉水导航时的其他组件(保持不变)。

    我不知道两种要求的单一解决方案。如果我必须这样做,我将设计组件的状态,使其分布或分散在不同的位置,每个位置都有自己的用途。基本上,我使用 2 种不同的解决方案:

    1. 需要保留的部分状态将被放入 this.state
    2. 需要共享的部分状态将放在Redux

    为了使这个解决方案起作用,我不使用react-redux,只使用redux。在redux 中有一个名为store.getState() 的方法,它将返回单个Redux 状态对象。我将store 设为全局可只读访问,并使用它来呈现需要共享数据的组件部分。

    【讨论】:

    • 这正是我心中的困惑。感谢您整洁干净的解释。现在我完全清楚了。再次非常感谢。
    • 我也不确定,但我遵循上述概念。我们不应该将所有数据都放在 redux 中。非常感谢。
    【解决方案2】:

    很高兴知道何时使用哪个。

    持续时间

    不同的状态会持续不同的时间。我将时间大致分为以下几组:

    短期:数据会在您的应用中快速变化 - 将此类数据存储在本地 React 状态中

    中期:数据可能会在您的应用中保留一段时间 - 将状态存储在 Redux 存储中

    长期:应该在多次访问您的网站之间持续的数据 - 存储在其他地方,可能是服务器上的数据库或本地存储中

    点击此处了解更多信息:React State vs Redux State When and Why?

    【讨论】:

      【解决方案3】:

      如果多个类中需要数据,则使用 redux 状态,否则使用反应状态, 它取决于组件的生命周期。 由于 redux 状态是全局的,并且反应状态仅在定义它的类中是活动的。 根据您的情况,您可以对第一个组件使用 redux 状态,因为您将返回到它,并且您希望 Marie 作为您的数据,并为第二个组件使用反应状态,因为您希望 April 作为您的数据。

      【讨论】:

        猜你喜欢
        • 2021-12-08
        • 1970-01-01
        • 2016-05-01
        • 2017-02-22
        • 1970-01-01
        • 1970-01-01
        • 2017-02-03
        • 2020-12-26
        • 1970-01-01
        相关资源
        最近更新 更多