为动态存储属性指定还原器
Assigning a reducer for a dynamic store property
我正试图弄清楚如何为从用户事件创建的状态树中的属性设置一个reducer。
我的状态树如下:
{
session: { session object },
dashboard: {
id: 'id001',
charts: {
'cid001': { dimensions: { ... }, more objects... },
'cid002': { dimensions: { ... }, more objects... }
}
}
}
当用户单击"添加图表"按钮时,新的charts
属性将通过Redux进入。该键设置为图表id cid
。
我目前正在使用combineReducers()
来设置reducer树。
import session from './session';
import charts from './charts';
const rootReducer = combineReducers({
session,
dashboard: combineReducers({
charts
});
});
如果我提前知道房产名称,我就可以像这样嵌套减速器。然而,我希望避免为charts
属性使用大型缩减器,因为其中的每个图表上可能还有多达20个需要缩减的对象,dimensions
只是一个例子。
有没有办法为charts['cidxxx'].dimensions
和其他子属性设置减少器?有通配符标记吗?有什么想法吗?
对象排列对于这样的东西来说会很好。
function chartsReducer(state, {payload}) {
const {cid} = payload;
const currentChart = state[cid] || {};
return {...state, [cid]: {...currentChart, ...payload}};
}
如果您希望在属性树方面更深入,那么可能值得考虑如何更改数据的形状以匹配您的使用方式。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- jQuery最近父级的数据属性选择器
- 为动态存储属性指定还原器