如何在redux-saga中将URL,参数,标头传递给call()?

时间:2018-09-07 09:45:19

标签: reactjs redux 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});
  }
}    

在这里,我想使用call()发送带有一些参数和一些标头的“ get”请求,但是我不知道如何实现它。如果有时间,请用适当的工作示例(Codepen或jsFiddle)告诉它。

2 个答案:

答案 0 :(得分:2)

如果您阅读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` })
  console.log(users)
}

挺直的

答案 1 :(得分:1)

一个简单的调用可以用逗号分隔,yield call(fnName, param1, param2)