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
    })
}