取每一个都需要一个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
您正在混合使用 takeEvery
和 put
界面。
put
效果只需要一个参数——payload类型的action对象等。但是takeEvery
的接口不同,它需要多个参数,第一个通常是作为字符串的操作类型,第二个是被调用的传奇。
因此您的 takeEvery
调用应如下所示:
yield takeEvery(types.ALL_PRODUCTS_REQ, fetchAllProductsAsync)
有关更多详细信息,请查看文档:
https://redux-saga.js.org/docs/api/#takeeverypattern-saga-args
我在从 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
您正在混合使用 takeEvery
和 put
界面。
put
效果只需要一个参数——payload类型的action对象等。但是takeEvery
的接口不同,它需要多个参数,第一个通常是作为字符串的操作类型,第二个是被调用的传奇。
因此您的 takeEvery
调用应如下所示:
yield takeEvery(types.ALL_PRODUCTS_REQ, fetchAllProductsAsync)
有关更多详细信息,请查看文档: https://redux-saga.js.org/docs/api/#takeeverypattern-saga-args