using react/redux, i'm trying external data initial state express. i'm used work d3 wanted use d3.json reducer :
var url = 'http://localhost:3000/authors'; function cool() { d3.json(url, function(data) { dataset = data; }); } const authordata = (state = dataset, action) => { switch (action.type) { case 'data_chart_all': return action.data case 'data_chart_filter': return action.data default: return state; } }; export default authordata;
since d3.json callback function, reducer returned undefined. how deal ? can use else d3.json ?
you need function act dispatcher in redux:
// redux action using 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;
to use it:
call @ beginning of application:
store.dispatch(cool("my_url"));
note i'm not checking error handling in request
Comments
Post a Comment