我有一个React / Redux应用程序,我选择将Redux状态分为两个主要部分,广告和任务,并使用combineReducers。
首先制作广告。可以将单个广告或一组广告分组并分配给新任务。
在我的广告商店中,我有缩减器和传奇功能,可以使api调用与广告相关,并为广告更新Redux状态。
在我的任务商店中,我有reducers和saga函数,它们使api调用与任务相关,并为任务更新Redux状态。
从广告集合创建任务时,我需要更新广告Redux状态。最初我只是派遣我的广告动作创建者进行api调用并检索所有广告的更新列表。不幸的是,api调用是一个非常复杂的查询,因此相当耗时。
当我进行api调用以创建任务时,我得到了一些数据,我可以使用它来更新广告Redux状态,避免必须进行缓慢的api调用。
由于多个广告可用于创建任务,因此我的广告ID存储在数组中。
我正在试图找出如何循环遍历该数组并在广告Redux存储中调度reducer以使用此数据更新状态。
我遇到的一个问题是错误,指出无法从我用来迭代广告ID数组的forEach循环中调用yield。
另一个问题是找到从另一个Redux商店更新状态的最佳方法。
我想我可以将所有内容组合到一个Redux商店中,但该文件将会无限长。
不确定要去哪个方向。
答案 0 :(得分:0)
使这个困难的真正问题是弄清楚如何在循环中使用收益率。
这最终起作用了:
yield myArray.map((item: string) =>
put(OtherReduxStoreActions.myActionCreatorFunction(item))
);