Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为动态存储属性指定缩减器_Javascript_Reactjs_Redux - Fatal编程技术网

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}};
}
如果您希望在属性树方面进行更深入的研究,那么可能需要考虑如何更改数据的形状以匹配您使用数据的方式