我正在使用Redux应用程序开发ReactJS。我更改了状态,从而增加了一层属性。所以原来的状态结构是:
filters: {
filterGroupId-1 : {
id: filterGroupId-1
selectedFilters: []
}
filterGroupId-2 : {
id: filterGroupId-1
selectedFilters: []
}
filterGroupId-3 : {
id: filterGroupId-1
selectedFilters: []
}
}
现在已更改为:
filters: {
dataSource-1: {
filterGroupId-1 : {
id: filterGroupId-1
selectedFilters: []
}
filterGroupId-2 : {
id: filterGroupId-1
selectedFilters: []
}
filterGroupId-3 : {
id: filterGroupId-1
selectedFilters: []
}
}
dataSource-2 {
...
}
}
要删除过滤器组,我最初在过滤器精简器中具有以下代码:
case FILTER_GROUP_DELETED:
const { [action.data.filterGroupId]: deletedValue, ...newState } = state;
return newState
我需要对以上代码片段进行哪些更改,以说明引入到状态结构中的额外层? (过滤器组对象现在位于数据源属性下)
感谢任何帮助
答案 0 :(得分:0)
您可以从状态中提取对象,然后使用完全相同的方法删除元素,然后从交换机中返回JSON对象,并直接使用setState
>
case FILTER_GROUP_DELETED:
const { ['dataSource-1']: dataSource } = state;
const { [action.data.filterGroupId]: deletedValue, ...newSource } = dataSource;
return { 'dataSource-1': newSource }