使用redux-saga实现撤消

时间:2017-07-30 15:00:49

标签: reactjs redux redux-saga

如果从UI触发了动作removeItem(itemId),它应首先从状态中删除相应的项目,然后调用相关的传奇。如果传奇失败,它应该将状态重置为原始状态。

我想知道您是否可以将信息附加到reducers中的action有效负载,然后从具有相同有效负载的saga触发failed操作。这假设减速器将始终首先被触发(是真的吗?)

1 个答案:

答案 0 :(得分:1)

你不应该从减速机内部发货。减速器工作是采取当前状态,一个动作,并从两者的减少中返回新状态。就是这样。您尝试做的事情可以通过以下策略来完成:

  1. 使用itemId获取对该项目的引用并将其存储在本地。
  2. 根据ID
  3. 调度从商店中删除商品的操作
  4. 调用相关的传奇。
  5. 如果失败,请将步骤1中的本地存储项目添加回商店。如果成功,请从步骤1中删除对项目的引用。