如何处理d3.json以在React / redux中获取我的InitialState

时间:2016-08-08 18:10:52

标签: json reactjs redux

使用React / Redux,我正在尝试使用express将外部数据放入我的初始状态。我习惯使用D3,所以我想使用d3.json和我的reducer这样:

{{1}}

由于D3.json是一个回调函数,我的reducer返回undefined。我该如何处理?我可以使用除d3.json之外的其他东西吗?

1 个答案:

答案 0 :(得分:1)

您需要一个在redux中充当调度程序的函数:

// redux action using a dispatcher (think middleware)
export function cool(url) {
    return function(dispatch) {
        return d3.json(url, response => {
            dispatch(setData(response))
        }
    }
}

// redux action
export function setData(data) {
 return {
        type: 'DATA_CHART_ALL',
        data
    }
}

const authorDataReducer = (state = {}, action) => {
    switch (action.type) {
      case 'DATA_CHART_ALL':
        return action.data
      case 'DATA_CHART_FILTER':
        return action.data
      default:
        return state;
    }
};

export authorDataReducer;

使用它:

在应用程序开头调用它:

store.dispatch(cool("MY_URL"));

请注意,我没有检查请求中的错误处理