goddess
侠客
侠客
  • 最后登录2021-07-08
  • 发帖数18
阅读:1526回复:1

钉钉小程序改变data下面对象中的某个值,除了改变的值还在,其他值没了。

楼主#
更多 发布于:2020-06-08 21:16
前一段时间搞敏捷开发,项目为钉钉小程序。
在data里面设置了一个对象,改变对象下面的一个键的值后,发现其他键的值没了,只有刚刚改变的值还在
因为遇到这个问题的时候是在组件里面,所以我直接上组件代码。当然pages下面也有这个问题。
Component({
  data: {
    newObject:{
      name:"zhangsan",
      sex:"男",
      age:"18"
    }
  },
  props: {},
  didMount() {
    this.setData({ 
      newObject:{
        name:"lisi"
      }
      })
      console.log(this.data.newObject)
  }
})
16行打印如下所示

具体原因还没找到,因为搞敏捷开发,所以没有办法。
但是解决办法还是找到了3种解决办法,代码都是基于最上面的改动的。
1.在newObject下加上...this.data.newObject,把前面的代码分解出来再赋值
didMount() {
  this.setData({ 
    newObject:{
      ...this.data.newObject,
      name:"lisi"
    }
    })
    console.log(this.data.newObject)
}


2.最初代码下面的didMount方法改成这样
didMount() {
  this.setData({ 
    "newObject.name":"lisi"
    })
    console.log(this.data.newObject)
}


3.最初代码下面的didMount方法改成这样
didMount() {
  this.data.newObject.name="lisi"
  this.setData({ 
    newObject:{
      ...this.data.newObject
    }
    })
    console.log(this.data.newObject)
}
goddess
侠客
侠客
  • 最后登录2021-07-08
  • 发帖数18
沙发#
发布于:2021-07-08 15:21
这个是和react一样得操作,当改变时你改变的数据将变成新得数据,同时也是react得动态渲染
这个是和react一样得操作,当改变时你改变的数据将变成新得数据,同时也是react得动态渲染
游客


返回顶部

公众号

公众号