小程序this.setData使用

小程序无法通过this.data.a = ***这种直接的形式改变某个值,特别是对象或者数组的改变稍微麻烦点,可以使用如下方法

 Page({
      data: {
        array: [{text: 'init data'}],
        goods: [
            {id: 1,pic: '/image/goods1.png'},
            {id: 1,pic: '/image/goods1.png'}
           ],
      },
      onLoad:function(options){   
	    let id = options.id
	    let index = 1
	    let str = "goods["+index+"].id"; //直接拼接成字符串
	    this.setData({
	        [str]:id   //用中括号包裹这个字符串
	    })
	}
      changeItemInArray: function() {
        this.setData({
          'array[0].text':'changed data'
        })
      }
    })

有时候想给属性值的对象或者数组进行赋值,例如给data.goods.id进行赋值,就要用另外的方式

Page({
  data:{
    goods: {
      id: 1,
    },
  },
 
  onLoad:function(options){   
    let id = options.id;
    let str = "goods.id"; //直接拼接成字符串
    this.setData({
        [str]:id   //用中括号包裹这个字符串
    })



版权声明:本文为smlljet原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。