【问题标题】:React Native: when updating one item in state, do I need `...this.state`React Native:更新状态中的一项时,我是否需要`...this.state`
【发布时间】:2024-05-18 21:10:02
【问题描述】:

在本机反应中,当我希望更新状态字典中一项的值时,我是这样做的:

this.setState({
    showFullImage: true,
})

但我团队中的一些开发人员会像这样添加...this.state

this.setState({
    ...this.state,
    showFullImage: true,
})

对我来说这是错误的,因为它会更新依赖于状态的所有内容。包括任何可能不需要更新的东西。我的方法(第一种)一直有效,并没有从状态中删除所有其他值......我错了吗?

【问题讨论】:

  • this.setState({ showFullImage: true }) 就足够了。

标签: react-native state setstate


【解决方案1】:

你是对的,没有必要分散你不更新的状态部分。只更新需要更新的内容。

【讨论】:

    【解决方案2】:

    setState 方法更新提供的键的状态值。它只更新选定的键。所以如果你想更新状态的单个属性,你可以直接更新。

    如果你想更新子级别的单个属性而不是你需要... 例如。

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

    【讨论】:

      最近更新 更多