1. 程式人生 > >小程式setData賦值的坑

小程式setData賦值的坑

小程式的每個頁面都有個data物件來存放當前頁面的變數,而小程式的setData可以直接給對應的元素進行賦值;

Page({
  data:{
    goods: {
      id: 1,
      pic: '/image/goods1.png',
     
    },
    num: 1,
    maxnum:3, //庫存
    status:'有貨',
   
  },

   onLoad:function(options){
        let id = options.id
        this.setData({
            num:3   //可以給data的屬性直接賦值
        })
    }
})

2.但是有時候想給屬性值的物件或者陣列進行賦值,例如給data.goods.id進行賦值,就要用另外的方式

​
Page({
  data:{
    goods: {
      id: 1,
      pic: '/image/goods1.png'     
    },
    num: 1,
    maxnum:3, //庫存   
  },

  onLoad:function(options){   
    let id = options.id;
    let str = "goods.id"; //直接拼接成字串
    self.setData({
        [str]:id   //用中括號包裹這個字串
    })
})

​

3.如果是陣列也是一樣的拼接字串

​
​
Page({
  data:{
    goods: [
            {id: 1,pic: '/image/goods1.png'},
            {id: 1,pic: '/image/goods1.png'}
           ],
    num: 1,
    maxnum:3, //庫存   
  },

  onLoad:function(options){   
    let id = options.id
    let index = 1
    let str = "goods["+index+"].id"; //直接拼接成字串
    self.setData({
        [str]:id   //用中括號包裹這個字串
    })
})

​

​