|
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 |
|
|