取每一个都需要一个saga参数

Take every requires a saga parameter

我在从 api

获取数据时遇到此错误
export function* fetchAllProductsAsync()
{  const response = yield call(loadAllProductsApi)
   yield put({type:types.ALL_PRODUCTS_SUCCESS, payload:response.data})   
}

export function* productSaga()
{
    yield takeEvery({type:types.ALL_PRODUCTS_REQ, fetchAllProductsAsync})
}

export default productSaga
function* rootSaga(){ yield all([productSaga])}

export default rootSaga

您正在混合使用 takeEveryput 界面。

put效果只需要一个参数——payload类型的action对象等。但是takeEvery的接口不同,它需要多个参数,第一个通常是作为字符串的操作类型,第二个是被调用的传奇。

因此您的 takeEvery 调用应如下所示:

yield takeEvery(types.ALL_PRODUCTS_REQ, fetchAllProductsAsync)

有关更多详细信息,请查看文档: https://redux-saga.js.org/docs/api/#takeeverypattern-saga-args