使用React / Redux,我正在尝试使用express将外部数据放入我的初始状态。我习惯使用D3,所以我想使用d3.json和我的reducer这样:
{{1}}
由于D3.json是一个回调函数,我的reducer返回undefined。我该如何处理?我可以使用除d3.json之外的其他东西吗?
答案 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"));
请注意,我没有检查请求中的错误处理