こんにちは、React コンポーネントの 1 つに 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 作業が行われると予想していましたが、一連のディスパッチの最初の処理のみが行われることに気付きました。フォークの使い方が間違っていますか?
ありがとうございました!