使用redux更新商店中嵌套数据数组的最佳/正确方法是什么?
我的商店看起来像这样:
{
items:{
1: {
id: 1,
key: "value",
links: [
{
id: 10001
data: "some more stuff"
},
...
]
},
...
}
}
我有一对异步操作来更新完整的items
对象,但是我还有另一对操作要更新特定的links
数组。
我的减速器当前看起来像这样,但是我不确定这是否是正确的方法:
switch (action.type) {
case RESOURCE_TYPE_LINK_ADD_SUCCESS:
// TODO: check whether the following is acceptable or should we create a new one?
state.items[action.resourceTypeId].isSourceOf.push(action.resourceTypeLink);
return Object.assign({}, state, {
items: state.items,
});
}
React的update()
不变性帮助器是一种创建普通旧JavaScript对象的更新版本而无需对其进行突变的便捷方法。
您为它提供了要更新的源对象和一个对象,该对象描述了需要更新的片段的路径以及需要进行的更改。
例如,如果某个动作具有id
和link
属性,并且您想将推link
送到以键为键的项中的链接数组id
:
var update = require('react/lib/update')
// ...
return update(state, {
items: {
[action.id]: {
links: {$push: action.link}
}
}
})
(示例使用ES6计算的属性名称作为action.id
)
我正在尝试学习React(使用redux),所以我正在制作一个应用程序,在其中我可以创建训练计划,将训练添加到计划中,然后将训练添加到训练中。 PlanListComponent 我的PlansList组件为每个计划呈现一张卡片。在这张卡片中,它为该计划中的每个训练呈现一个训练列表。将训练添加到计划后,“计划列表”组件不会重新渲染。添加的训练仅在我刷新页面后显示。我之所以选择这种情况,是因为我必须
我试图更新嵌套数组中的对象,下面是我的状态示例。我试图在目标内更新对象,我成功地更新了对象。 但是 每次我更新任何对象。索引0处的对象将获得所有对象的副本。我更新的次数越多,它就会创建更多的副本,它们就会嵌套在索引0处的对象中。 索引0处的对象也将使用任何对象的最新更新进行更新。 keyName=列表中对象的索引。(位于“0”和“1”上方的两个值:{) 此外,如果你知道任何好的留档或规范化的教程,
问题内容: 在此请忍受,因为这个问题与我使用React,Redux或react- redux的第一个测试应用有关。Docs使我步入正轨,并且我有一个可以正常工作的模拟银行应用程序。我的状态对象大致如下所示: 我只有两个动作: 1. CHANGE_HASH(如网址哈希中所示)。此操作始终按预期工作,而reducer所做的只是更新state.activePageId(是的,我正在克隆状态对象而不是对其
这是我的架构:
问题内容: 有时候减速器会变得凌乱: 还有更简洁的方法吗? 问题答案: UPD :现在已成为ES2018的一部分 可以通过 非标准化 但属性扩展的语法来稍微改善它:
问题内容: 我有以下mongodb文件结构: 我已经能够使用$ elemMatch来更新操作中的字段,但是当我尝试对参数执行相同的操作(修改)时,它似乎不起作用。我想知道我应该尝试哪种其他方法,以便能够成功更新特定参数中的字段(通过其pid查找)。 我当前拥有但不起作用的更新代码如下所示: 问题答案: MongoDB 3.6及更高版本 MongoDB3.6及更高版本提供了一项新功能,该功能允许您使