如何将 url、参数、headers 传递给 redux-saga 中的 call()?
how to pass urls, params, headers to call() in redux-saga?
关于 call() 工作的理论在许多网站上都有很好的解释。但是,我没有找到任何网站可以通过正确的工作示例准确解释。
我写了下面的代码:
export function* loadUser() {
try {
const user = yield call(getUser);
yield put({type: 'FETCH_USER_SUCCESS', payload: user});
} catch(error) {
yield put({type: 'FETCH_FAILED', error});
}
}
这里,我想用一些参数发送 'get' 请求,使用 call() 发送一些 header 请求。但我不知道如何实现它。请,如果你有时间,请用适当的工作示例(Codepen 或 jsFiddle)告诉它。
如果您阅读 Redux Saga 文档,您会看到 call
接受一个函数和一个展开的参数数组(逗号分隔):
call(fn, ...args)
你可以这样使用它:
const getUsers = (options) => {
return axios(options)
}
function *fetchUsers() {
const users = yield call(getUsers, { method: 'get', url: `https://api.github.com/users` }, {user: 'my_username'})
console.log(users)
}
非常直接。
一个简单的调用可以用逗号分隔,yield call(fnName, param1, param2)
调用,函数名称和参数
call(funcname, ...args)
关于 call() 工作的理论在许多网站上都有很好的解释。但是,我没有找到任何网站可以通过正确的工作示例准确解释。
我写了下面的代码:
export function* loadUser() {
try {
const user = yield call(getUser);
yield put({type: 'FETCH_USER_SUCCESS', payload: user});
} catch(error) {
yield put({type: 'FETCH_FAILED', error});
}
}
这里,我想用一些参数发送 'get' 请求,使用 call() 发送一些 header 请求。但我不知道如何实现它。请,如果你有时间,请用适当的工作示例(Codepen 或 jsFiddle)告诉它。
如果您阅读 Redux Saga 文档,您会看到 call
接受一个函数和一个展开的参数数组(逗号分隔):
call(fn, ...args)
你可以这样使用它:
const getUsers = (options) => {
return axios(options)
}
function *fetchUsers() {
const users = yield call(getUsers, { method: 'get', url: `https://api.github.com/users` }, {user: 'my_username'})
console.log(users)
}
非常直接。
一个简单的调用可以用逗号分隔,yield call(fnName, param1, param2)
调用,函数名称和参数
call(funcname, ...args)