Taro this.setState() 问题

作者: 汗青fullstack | 来源:发表于2020-06-24 23:25 被阅读0次
     state = {
        doctor: {
          name: '',
          title: '',
        }
      }
    

    state下有两级,第一级doctor,第二级name/title,那么我们怎样修改name的值呢

    错误的做法:
    this.setState({
          doctor: {
            name: '张三'
          }
        }) 
    

    这样是错误的,因为this.setState 只能更改最外层属性的值,这样的结果是直接对doctor进行对象赋值,doctor下的title也被覆盖没了

    正确的做法1:
    let data = {name: '张三'}
        let doctor = Object.assign({},this.state.doctor,data)//data合并更新state.doctorInfo至target对象
        this.setState({
          doctor,
        })
    
    正确做法2:
    let doctor = {
          ...this.state.doctorInfo,
         name: '张三'
        }
     this.setState({
          doctor,
        })
    

    相关文章

      网友评论

        本文标题:Taro this.setState() 问题

        本文链接:https://www.haomeiwen.com/subject/hghazhtx.html