setData函数在小程序中具有同时修改前端和后端的功能,应该是进行数据修改中最常用的一个功能了。
修改data中的变量
wxml
<view>
{{information}}
</view>
<view>
<button type="primary" bindtap="click">修改信息</button>
</view>
js
// index.js
// 获取应用实例
const app = getApp()
Page({
data: {
information:"你好!"
},
click(){
this.setData({information:"hello world!"})
},
})
前后端一起进行修改。
修改字典
wxml
<view>
{{information.name}}
{{information.age}}
</view>
<view>
<button type="primary" bindtap="click">修改信息</button>
</view>
js
Page({
data: {
information:{
name:"张三",
age:120
}
},
click(){
this.setData({'information.name':'李四'})//需要将字典和键用引号引起来
},
})
修改数组
<view wx:for="{{informations}}" wx:key="key">
{{item.name}}
{{item.age}}
</view>
<view>
<button type="primary" bindtap="click">修改信息</button>
</view>
js
Page({
data: {
informations:[
{
name:"张三",
age:100
},
{
name:"李四",
age:120
},
]
},
click(){
this.setData({'informations[1].name':'王五'})
this.setData({'informations[1].age':92})
},
})
向数组中添加元素.
wxml
<view wx:for="{{informations}}" wx:key="key">
{{item.name}}
{{item.age}}
</view>
<view>
<button type="primary" bindtap="click">修改信息</button>
</view>
js
Page({
data: {
informations:[
{
name:"张三",
age:100
},
{
name:"李四",
age:120
}
]
},
click(){
var informations = this.data.informations//必须在暂存一下不然报错(说this.data.informations没有push方法,我也懵了)
informations.push({name:"王五", age:"92"})
this.setData({informations: informations})
}
})