我想将获取数据传递到我的减速器中

时间:2018-10-17 09:35:12

标签: reactjs redux react-redux

在redux中使用异步操作并使用化简器来获取数据。只是需要一些帮助将数据提取到减速器中。这是我到目前为止所拥有的。

actions.js

function receiveData(loadData) {
  return {
    type: 'RECEIVE_POSTS',
    loadData
  };
}

function schemaData(loadData) {
  return dispatch => {
    return fetch(`www.fetchurlhere`)
      .then(response => response.json())
      .then(json => dispatch(schemaData(loadData, response.data)));
  };
}

reducer.js

export default function schemaData(prevState = {}, action) {
  if (action.type === 'RECEIVE_POSTS') {
    return action.receiveData;
  } else {
    return prevState;
  }
}

我可以在商店中看到reducer'schemaData',但是它是空的。之前从未请求过获取操作。我看过redux示例,并尝试为我的示例进行修改。但是它是空的,所以缺少某些东西。

1 个答案:

答案 0 :(得分:2)

尝试一下:


actions.js

function receiveData(loadData) {
  return {
    type: 'RECEIVE_POSTS',
    receiveData: loadData
  };
}

function schemaData() {
  return dispatch => {
    return fetch(`www.fetchurlhere`)
      .then(response => response.json())
      .then(json => dispatch(receiveData(json)));
  };
}

reducer.js

export default function schemaData(prevState = {}, action) {
  if (action.type === 'RECEIVE_POSTS') {
    return action.receiveData;
  } else {
    return prevState;
  }
}

这是一个小演示:https://codesandbox.io/s/3vmn3lvp76