Javascript 为动态存储属性指定缩减器
我试图找出如何在状态树中为从用户事件创建的属性设置减速机 我的状态树如下所示:Javascript 为动态存储属性指定缩减器,javascript,reactjs,redux,Javascript,Reactjs,Redux,我试图找出如何在状态树中为从用户事件创建的属性设置减速机 我的状态树如下所示: { session: { session object }, dashboard: { id: 'id001', charts: { 'cid001': { dimensions: { ... }, more objects... }, 'cid002': { dimensions: { ... }, more objects... } } } } 当
{
session: { session object },
dashboard: {
id: 'id001',
charts: {
'cid001': { dimensions: { ... }, more objects... },
'cid002': { dimensions: { ... }, more objects... }
}
}
}
当用户单击添加图表按钮时,新的图表
属性通过Redux进入。该键设置为图表id,cid
我目前正在使用combineReducers()
设置减速器树
import session from './session';
import charts from './charts';
const rootReducer = combineReducers({
session,
dashboard: combineReducers({
charts
});
});
如果我提前知道属性名称,我就能够像这样嵌套减缩器。但是,我希望避免为charts
属性使用大量的缩减器,因为它内部的每个图表上最多可以有20个需要缩减的对象,dimensions
只是一个示例
是否有方法为
图表['cidxxx'].维度和其他子属性设置减速机?是否有用于此的通配符标记?有什么想法吗?像这样的东西很好
function chartsReducer(state, {payload}) {
const {cid} = payload;
const currentChart = state[cid] || {};
return {...state, [cid]: {...currentChart, ...payload}};
}
如果您希望在属性树方面进行更深入的研究,那么可能需要考虑如何更改数据的形状以匹配您使用数据的方式