Cla*_*y_F 1 javascript setstate ecmascript-6 reactjs
我目前的状态是这样的:
state = { items : [{id: 1, text: 'test words'}, {id: 2, text: 'another test'}]
Run Code Online (Sandbox Code Playgroud)
这是我从阵列中删除对象的功能,试图避免改变状态。
handleRemove(passedInId) {
const myItems = this.state.items
const newArray = myItems.filter(item => item.id !== passedInId)
this.setState(prevState => ({
items: prevState.items = newArray
}))
console.log('handle remove runned', passedInId, myItems, newArray)
}
Run Code Online (Sandbox Code Playgroud)
它可以正常工作,但是在继续生活之前想知道它是否不是反模式
非常感谢!!
您的功能几乎是正确的,并且您有正确的想法。在您的情况下,您不需要使用带有mutator函数的setState版本,只需执行以下操作:
handleRemove(passedInId) {
const myItems = this.state.items
const newArray = myItems.filter(item => item.id !== passedInId)
this.setState({
items: newArray
})
console.log('handle remove runned', passedInId, myItems, newArray)
}
Run Code Online (Sandbox Code Playgroud)
老实说,这很简单,一个班轮就能做到:
handleRemove(passedInId) {
this.setState({items: this.state.items.filter(item => item.id !== passedInId)})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5077 次 |
| 最近记录: |