有时候减速器会变得凌乱:
const initialState = {
notificationBar: {
open: false,
},
};
export default function (state = initialState, action) {
switch (action.type) {
case actions.LAYOUT_NOTIFICATIONBAR_OPEN:
return Object.assign({}, state, {
// TODO: Find a cleaner way to do this!
notificationBar: Object.assign({}, state.notificationBar, {
open: true,
}),
});
default:
return state;
}
}
还有更简洁的方法吗?
UPD :现在已成为ES2018的一部分
可以通过 非标准化 但属性扩展的语法来稍微改善它:
return {
...state,
notificationBar: {
...state.notificationBar,
open: true,
},
};
我正在尝试学习React(使用redux),所以我正在制作一个应用程序,在其中我可以创建训练计划,将训练添加到计划中,然后将训练添加到训练中。 PlanListComponent 我的PlansList组件为每个计划呈现一张卡片。在这张卡片中,它为该计划中的每个训练呈现一个训练列表。将训练添加到计划后,“计划列表”组件不会重新渲染。添加的训练仅在我刷新页面后显示。我之所以选择这种情况,是因为我必须
问题内容: 使用redux更新商店中嵌套数据数组的最佳/正确方法是什么? 我的商店看起来像这样: 我有一对异步操作来更新完整的对象,但是我还有另一对操作要更新特定的数组。 我的减速器当前看起来像这样,但是我不确定这是否是正确的方法: 问题答案: React的不变性帮助器是一种创建普通旧JavaScript对象的更新版本而无需对其进行突变的便捷方法。 您为它提供了要更新的源对象和一个对象,该对象描述
问题内容: 我是redux和es6语法的新手。我使用官方的redux教程和此示例制作了我的应用。 以下是JS代码段。我的观点-在post reducer中定义REQUEST_POST_BODY和RECEIVE_POST_BODY案例。主要困难- 在商店中查找和更新合适的对象。 我尝试使用示例中的代码: 但是它使用了简单的帖子数组。无需按ID查找正确的帖子。 这是我的代码: 问题答案: 如果您想坚持
我能够从赫尔辛基MOOC课程中弄清楚这个项目,但我认为有一种更干净、更容易阅读的方式来写它。目标是打印出:
我的Redux状态是如何更新的,可以在pokelist.js文件中注销,但是我的状态变量没有设置好,cardList还是一个空数组,我如何正确设置状态?我注销pokelist.js文件中的集合,它首先注销一个空数组,然后是一个包含元素的数组。
我试图更新嵌套数组中的对象,下面是我的状态示例。我试图在目标内更新对象,我成功地更新了对象。 但是 每次我更新任何对象。索引0处的对象将获得所有对象的副本。我更新的次数越多,它就会创建更多的副本,它们就会嵌套在索引0处的对象中。 索引0处的对象也将使用任何对象的最新更新进行更新。 keyName=列表中对象的索引。(位于“0”和“1”上方的两个值:{) 此外,如果你知道任何好的留档或规范化的教程,