javascript - 如何将参数从 redux-saga 观察者发送到 AsyncFunction?
问题描述
根据我对 UI 中每个动作的理解,有一个saga-watcher
将抓取 actionType 并调用 aasyncFunction
从远程服务器获取/发布数据
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))
}
解决方案
您可以在动作创建者的有效负载中放置一些参数。
并像这样在您的 fetchAsync 中调用它们:
export function * fetchAsync({ payload }) {}
有效负载是自动传递的,因此无需在您的watcherSaga
推荐阅读
- c++ - 如何在 Windows 中构建 opus.lib?
- php - 如何纠正 PHP 在本地服务器中重定向太多次的说法?
- android - 如何在片段中添加深度链接?
- python - 当我在 HTML 中使用变量内容时(来自 Python、Flask)
- java - 当我期望它输出 1,2,3 时,为什么此代码输出 '49,50,51'
- swift - Swift:如何为“现代” CollectionView 执行 didSelectItemAt
- python - 会话中的 SQLAlchemy delete() 记录
- vim - 使用替换命令执行()错误neovim
- installation - 是否有稳定版本的 Julia 和 Atom 组合可以按照说明安装?
- asp.net - 哑初始化和 ASP.NET 5