【问题标题】:Update one part of state when another part of state get changed in Redux当 Redux 中状态的另一部分发生变化时更新状态的一部分
【发布时间】:2017-01-05 10:28:07
【问题描述】:

例如,在购物车中,我可以在将产品添加到购物车时更新购物车状态,但如何同时更新产品状态。

我使用 combineReducers 来组合购物车和产品减速器。

编辑:我已经在下面发布了答案,请检查它。

【问题讨论】:

  • 您可以只发送两个操作,一个针对购物车减速器,另一个针对产品减速器。
  • 您必须调度 2 个操作。
  • 你不能简单地在两个reducer中处理相同的动作吗?

标签: javascript reactjs ecmascript-6 redux react-redux


【解决方案1】:

您可以通过组合 reducer 来做到这一点。使用两个不同的减速器。总是想着不同的减速器来改变不同的状态部分。这将使状态更改更加干净。因此,实现此目的的一种方法是发送第一个操作以更改购物车状态。一旦成功,使用 componentWillReceiveProps 检查购物车的状态是否已更新。如果是这样,请发送产品的其他操作。

【讨论】:

  • 感谢您的回复。如果您提供一些参考或代码会很有帮助。
【解决方案2】:

我终于找到答案了,我们可以按照下面的方法来做。

onClick={() => {
         addToCart(product.id, product.name, product.price);    
         updateProductList(product.id)
}}

这是 es6 一键调用两个函数的方式,所以我们可以同时管理两个不同的状态。我在演示组件中调用了它。 我们可以创建相应的 action 和 reducer。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 2020-10-21
    • 2021-10-06
    • 2021-07-04
    • 2019-02-05
    • 2016-04-04
    相关资源
    最近更新 更多