React中更新State对象的某一个属性值

一、数据如下

this.state = {
  login: {
    username: '',
    password: ''
  },
}

举例:输入框输入内容时改变username或者password

二、错误更新

错误方法一:

this.setState({
    login: {
        username: 'admin'
        }
})
  • 这样做,login对象的属性全部替换为只有username一个属性,其它属性丢失。

错误方法二:

this.setState({
    'login.username': 'admin'
})
  • 熟悉vue,因为有数据绑定,其它属性值并不会丢失。但是react这样更新数据不会成功

三、正确更新

const login = this.state.login
login.username = 'admin'
this.setState({ login })
  • 得到login的地址,再对对象属性赋值,更新对象
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容