您好,我在其中一个 React 组件中有一个 onChange 回调,它通过这样的地图调用多次分派一个动作:
onChange: (items, newRatio) => {
items.map( item => {
dispatch(itemActions.updateStart({
...item,
adjusted_ratio: _.round(item.adjusted_ratio + newRatio, 1),
}))
})
}
我有一个像这样的“项目”的传奇:
// Updating an Item
function* watchUpdate() {
while(true) {
const { record: unsavedItem, } = yield take(itemTypes.ITEMS_UPDATE_START);
const task = yield fork( updateItemDbCrud, unsavedItem )
}
}
function* updateItemDbCrud(unsavedItem) {
const savedItem = yield call( api.update, unsavedItem );
const result = yield put ( itemActions.updateSuccess(savedItem) )
}
export default [watchUpdate]
换句话说,我预计每当 ITEMS_UPDATE_START 操作被调度时,它会派生一个新的 updateItemDbCrud 并继续执行一些 API 工作,但我注意到只有调度序列中的第一个通过。我用错了叉子吗?
谢谢!