据我了解,对于UI中的每个操作,都有一个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))
}
答案 0 :(得分:0)
您可以在动作创建者的有效负载中添加一些参数。
然后像这样在您的fetchAsync中调用它们:
export function * fetchAsync({ payload }) {}
有效负载会自动传递,因此无需在您的watcherSaga