setData 使用方法:
在更改setData下的变量时,直接写key名就可以了的,不用写this.data.属性,如下所示 Page({ data:{ value:'hello' } this.setData({ value:'修改的值' //错误写法:this.data.value:'' //注意key的名称一定是data中的名称 }) }) setData的第二个参数是一个回调函数,在页面渲染完后执行。 this.setData({ value:'hello' }, () => { //第二个参数 console.log("在页面渲染完value后再执行"); }) 利用setData()修改数组对象下的一个属性 方法一:使用双引号与单引号 Page({ data:{ List: [{ id:0, name:'test01' }] } }) this.setData({ "List.id": 6 }) 方法二: 使用中扩号 his.setData({ ['List.id']: 2 } 如果数组下有多个对象,我们要如何修改其中的一个属性呢? wxml部分代码: //wxml <block wx:for="pw_List" wx:key="index" id="pw_index"> <view class="message"> <view>pw_item.id、</view> <view>pw_item.name</view> </view> <button bindtap="change" id="pw_item.id">点我修改数据中的name</button> </block> 错误写法: //index.js Page({ data:{ List: [{ id:0, name:'test01' }, { id:1, name:'test02' }], }, change(event){ let index = event.currentTarget.id; this.setData({ List[index].name:'newName' }) } }) 这样写会报错:Only digits(0-9) can be put inside [] in the path string 正确写法: change(event){ let index = event.currentTarget.id; this.setData({ [`List[${index}].name`]:'newName' }) } 参考:https://www.yii666.com/blog/300081.html |
|
|