我有以下减速机:
const initialState = {data1:null, data2:null, isFetching: false,error:null};
export const gaData = (state = initialState, action)=>{
switch (action.type) {
case 'FETCH_DATA_SUCCESS':
return Object.assign(
{},state,
{data1: action.data1,
data2: action.data2.map( ([x, y, z]) => ({ x, y, z }) ),
isFetching: action.isFetching,
error: null });
default:return state;
}
};
如何使用d3.nest
,以便为x
嵌套y
值和汇总data2
值?
如果我是对的,我会做这样的事情:
var newdata = d3.nest()
.key(function(d) { return d.x; })
.rollup(function(d) { return d3.sum(d, function(g) {return g.y;}); })
.entries(data2);
但我不知道在减速机中包含它。
答案 0 :(得分:1)
听起来好像你只想做这样的事情:
case 'FETCH_DATA_SUCCESS':
let data2 = action.data2.map(([x, y, z]) => ({ x, y, z }));
data2 = d3.nest()
.key(function (d) { return d.x; })
.rollup(function (d) { return d3.sum(d, function (g) { return g.y; }); })
.entries(data2);
然后您可以将data2
作为新状态对象的一部分返回。
另外,请考虑将变量名称更改为比data2
更有意义的内容!