Raa*_*lam 1 javascript reactjs redux-saga
我是redux-saga的初学者,我对以下情况感到困惑。我有一个 items 数组,我想为每个项目分叉相同的方法。所以我使用这行代码:
yield items.map(item => fork(loadItemDetails, item));
Run Code Online (Sandbox Code Playgroud)
使用上述代码,loadItemDetails永远不会调用。相反,如果我fork单独调用每个项目,如下所示,那么它会按预期工作。
yield fork(loadItemDetails, items[0]);
yield fork(loadItemDetails, items[1]);
yield fork(loadItemDetails, items[2]);
Run Code Online (Sandbox Code Playgroud)
这让我很困惑,我无法弄清楚地图不起作用的原因。
小智 6
我遇到了同样的问题。
items.forEach(item => yield fork(loadItemDetails, item));
Run Code Online (Sandbox Code Playgroud)
将不起作用,因为您将收到以下错误:
'yield' 表达式只允许在生成器主体中使用。
为了解决它,我使用 yield all
export function* itemDetailsSage() {
const { items } = yield take(SET_CART_ITEMS);
yield all(items.map(item => fork(loadItemDetails, item)));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |