【发布时间】:2021-03-18 14:47:08
【问题描述】:
我正在尝试从处于 redux 状态的嵌套对象项中删除一个对象。我只能设法删除值而不是实际的键。我无法过滤它,因为它不是一个数组。我虽然也许 Object.keys(state.items[or_id]).reduce() 可能是一个选项?
状态:
items: {
'b0ad5c5c-5cf4-40b5-9bc9-87f773ba3c06': {
'7e8557dc-9352-4dea-a062-0a1d43371698': {
value: {
id: '7e8557dc-9352-4dea-a062-0a1d43371698',
expires_on: '2020-11-19T14:22:18.182000+00:00'
}
},
'7e8557dc-9352-4dea-a062-0a1d43371692': {
value: {
id: '7e8557dc-9352-4dea-a062-0a1d43371692',
expires_on: '2021-11-19T14:22:18.182000+00:00'
}
}
}
},
减速器:
if(type === DELETE){
const { or_id, in_id } = payload;
return {
...state,
items: {
...state.items,
[or_id]: {
...state.items[or_id],
[in_id]: {},
},
},
};
}
如果我使用上面的这个方法,密钥仍然存在的状态。
items: {
'b0ad5c5c-5cf4-40b5-9bc9-87f773ba3c06': {
'7e8557dc-9352-4dea-a062-0a1d43371698': {},
'7e8557dc-9352-4dea-a062-0a1d43371692': {
value: {
id: '7e8557dc-9352-4dea-a062-0a1d43371692',
expires_on: '2021-11-19T14:22:18.182000+00:00'
}
}
}
预期结果(少一件):
items: {
'b0ad5c5c-5cf4-40b5-9bc9-87f773ba3c06': {
'7e8557dc-9352-4dea-a062-0a1d43371692': {
value: {
id: '7e8557dc-9352-4dea-a062-0a1d43371692',
expires_on: '2021-11-19T14:22:18.182000+00:00'
}
}
}
【问题讨论】:
-
移除该项目的条件是什么?
-
你的意思是删除
标签: javascript reactjs redux ecmascript-6 state