微信小程序,使用setData修改一组数据中的单个属性值的方法

203 阅读1分钟

一个页面,有如下的数据:

data: {
    inputData: {
      avatar:{
        value: '/assets/img/noavatar.png',
        error: false,
        errorText: ''
      },

      nickName:{
        value: '',
        error: false,
        errorText: ''
      },
    }

如果我们使用如下方法修改inputData.nickName.value的时候,

this.setData({
      inputData: {
          nickName:{
            value: '张三',
          },
      }
    })

不仅 error: false, errorText: '' 这两个属性会被清除。而整个data中的其他值也被清除掉了。

那我们怎样才能只修改其实中一个属性值而不影响别的数据和属性呢?

如下,使用单引号即可:

this.setData({
      'inputData.avatar.value': e.detail.userInfo.avatarUrl,
      'inputData.nickName.value': e.detail.userInfo.nickName
    })