React Native:更新状态中的一项时,是否需要`...this.state`
React Native: when updating one item in state, do I need `...this.state`
在 React Native 中,当我想更新状态字典中某一项的值时,我是这样做的:
this.setState({
showFullImage: true,
})
但我团队中的一些开发人员添加 ...this.state
如下:
this.setState({
...this.state,
showFullImage: true,
})
对我来说这是错误的,因为它会更新所有依赖于状态的东西。包括任何可能不需要更新的东西。我的方法(第一个)一直有效,并没有从状态中删除所有其他值...我错了吗?
你是对的,没有必要分散你不更新的部分状态。只更新需要更新的内容。
setState
方法更新所提供键的状态值。它只更新选定的键。所以如果你想更新单个属性的状态你可以直接更新。
如果您想更新 child 级别的单个 属性,您需要 ...
例如。
this.state = {
showImage: true,
user: {
name: 'test',
age: 10
}
}
updateName(name) {
const { user } = this.state
this.setState({
user: {
...user,
name
}
})
}
toggleImage() {
const { showImage } = this.state
this.setState({
showImage: !showImage
})
}
在 React Native 中,当我想更新状态字典中某一项的值时,我是这样做的:
this.setState({
showFullImage: true,
})
但我团队中的一些开发人员添加 ...this.state
如下:
this.setState({
...this.state,
showFullImage: true,
})
对我来说这是错误的,因为它会更新所有依赖于状态的东西。包括任何可能不需要更新的东西。我的方法(第一个)一直有效,并没有从状态中删除所有其他值...我错了吗?
你是对的,没有必要分散你不更新的部分状态。只更新需要更新的内容。
setState
方法更新所提供键的状态值。它只更新选定的键。所以如果你想更新单个属性的状态你可以直接更新。
如果您想更新 child 级别的单个 属性,您需要 ...
例如。
this.state = {
showImage: true,
user: {
name: 'test',
age: 10
}
}
updateName(name) {
const { user } = this.state
this.setState({
user: {
...user,
name
}
})
}
toggleImage() {
const { showImage } = this.state
this.setState({
showImage: !showImage
})
}