小程式setData賦值的坑
阿新 • • 發佈:2018-11-06
小程式的每個頁面都有個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 //用中括號包裹這個字串 }) })