问题描述
它可能是一些愚蠢的错误,但我找不到tbh。。这是我的状态示例:
this.state = {
data: {
some data: ['some data']
}
}
const newArr = this.state.data[key].filter(item => item !== value);
在上面的代码中,我得到了我想要的是一个没有一个特定项目的数组
data: {
...this.state.data,[key]: newArr
},
但是它不起作用..这是怎么了?
解决方法
在代码中,您要将过滤后的数组附加到原始数组中的项目中。那是你的意图吗?
data: {
...this.state.data,[key]: [
...this.state.data[key],// individual entries
newArr,// array
],},//result:
data: {
'some key': [
"item 1",// string from original
"item 2",// string from original
[ "item 1","item 2"] // array
]
}
如果您只想要过滤的项目:
data: {
...this.state.data,[key]: newArr // the filtered array
},//result:
data: {
'some key': [
"item 2",// filtered items
]
}
,
好吧,这是我的错。代码本身是正确的。由于我的错误,国家两次成立。