移除 React 状态中的嵌套对象
Remove nested object in React State
在 React 中,我有一些过滤器处于以下状态:
this.state {
filters: [countries: {parameterName: 'country', value: 'England'},
{parameterName: 'country', value: 'Greenland'}]
}
在 onClick-Handler 函数中,我收到以下对象之一:
removeFilter(filter) {
console.log('remove->', filter);
// outputs: {value: 'England', parameterName: 'country'}
}
有没有办法使用 setState 从我的状态中删除该对象?
我目前尝试使用 'find' 来获取状态本身内的对象,但我不确定如何删除它:
let found ? this.state.filters[filter.parameterName].find(element => element.value === filter.value))
看起来这是一个反应状态管理问题,所以你想避免突变,我的意思是你不想操作原始数组对象。因此,您想创建一个新数组,但不包括要删除的数组。喜欢:
const newFilter = countryFilter.filter(f => f.value !== filter.value);
那么你要继续构造新的状态对象,把这个数组放在状态对象上它所属的地方。
我认为您在问题中粘贴的状态对象不正确,所以我并不是要猜测它的正确结构。
在 React 中,我有一些过滤器处于以下状态:
this.state {
filters: [countries: {parameterName: 'country', value: 'England'},
{parameterName: 'country', value: 'Greenland'}]
}
在 onClick-Handler 函数中,我收到以下对象之一:
removeFilter(filter) {
console.log('remove->', filter);
// outputs: {value: 'England', parameterName: 'country'}
}
有没有办法使用 setState 从我的状态中删除该对象? 我目前尝试使用 'find' 来获取状态本身内的对象,但我不确定如何删除它:
let found ? this.state.filters[filter.parameterName].find(element => element.value === filter.value))
看起来这是一个反应状态管理问题,所以你想避免突变,我的意思是你不想操作原始数组对象。因此,您想创建一个新数组,但不包括要删除的数组。喜欢:
const newFilter = countryFilter.filter(f => f.value !== filter.value);
那么你要继续构造新的状态对象,把这个数组放在状态对象上它所属的地方。
我认为您在问题中粘贴的状态对象不正确,所以我并不是要猜测它的正确结构。