Javascript 如何将参数从redux saga watcher发送到AsyncFunction?
根据我对UI中每个动作的理解,都有一个Javascript 如何将参数从redux saga watcher发送到AsyncFunction?,javascript,reactjs,redux-saga,Javascript,Reactjs,Redux Saga,根据我对UI中每个动作的理解,都有一个saga-watcher,它将抓住 actionType并调用asyncFunction从远程服务器获取/发布数据 export function* watcherSaga() { yield takeEvery('SOME_WATCHER_ACTION', fetchAsync) } 而fetchAsync将执行实际的api调用 export function* fetchAsync() { // actual fetch from remote
saga-watcher
,它将抓住
actionType并调用asyncFunction
从远程服务器获取/发布数据
export function* watcherSaga() {
yield takeEvery('SOME_WATCHER_ACTION', fetchAsync)
}
而fetchAsync
将执行实际的api
调用
export function* fetchAsync() {
// actual fetch from remote server api call
// callapi('/someUrl', someData)
yield put({ type: 'INCREMENT' })
}
我想让fetchAsync
像这样的东西变得通用
export function* genericFetchAsync(someUrl, someData, someAction) {
// actual fetch from remote server api call
// let resp = callapi('/someUrl', someData)
yield put({ type: someAction: payload: resp })
}
export function* watcherSaga() {
yield takeEvery('SOME_WATCHER_ACTION',
fetchAsync('SOME_ACTION', somedata, someUrl))
}
这样每个观察者都可以这样称呼它
export function* genericFetchAsync(someUrl, someData, someAction) {
// actual fetch from remote server api call
// let resp = callapi('/someUrl', someData)
yield put({ type: someAction: payload: resp })
}
export function* watcherSaga() {
yield takeEvery('SOME_WATCHER_ACTION',
fetchAsync('SOME_ACTION', somedata, someUrl))
}
您可以在动作创建者的有效负载中放置一些参数 然后在fetchAsync中调用它们,如下所示:
export function * fetchAsync({ payload }) {}
有效负载是自动传递的,因此无需在您的
watcherSaga
中执行任何其他操作,您可以在action creator的有效负载中放置一些参数
然后在fetchAsync中调用它们,如下所示:
export function * fetchAsync({ payload }) {}
有效负载是自动传递的,因此无需在您的
watcherSaga
中执行任何其他操作,但是somedata
和someUrl
如何进入watcherSaga()
?但是somedata
和someUrl
如何进入watcherSaga()
??