小程序SetData设置数组对象,SetData 新增数据, SetData Push新数据

作者:李留白

原文:微信小程序 setData 的坑

 

遇到的问题:

1 this.setData({
2    Data[0].name:"喵喵" 
3 })

 

解决办法:

1 var param = {};
2 var string = "Data["+变量+"].name;
3 param[string] = '喵喵';
4 that.setData(param);

 

另一个解决办法:

    ` 是ESC下方的按键

 

1 this.setData({
2   [`Data[${变量}].name`]:"喵喵",
3   [`Data[${变量}].names`]:([...data.names])
4 })

 

 

 

 

1 that.data.Data[0].position.top = sss
2 that.data.Data[1].position.top = sss
3 that.data.Data[0].position.left = sss
4 that.data.Data[1].position.left = sss
5 
6 that.setData({
7   Data: that.data.Data
8 })

 

 

不推荐的方法,数据修改后页面不会刷出新值!!!

1 this.data.Data[0].name = '喵喵'

 

PUSH

对象或数组进行操作

需要把获取到的数组或对象PUSH到指定位置

例如:

  this.data.nav[index].res

 nav[0].res 内必须有值后才能 PUSH!!!

1 const nav = params.page === 1 ? [] : this.data.nav
2 nav[this.data.currentTab].res.push(...data.list)
3 
4 this.setData({
5     nav: nav
6 })

 

 小程序 setdata 新增数据

 1 if(this.data.changs > 0){ // 表示不是第一次填数据,可以使用push
 2     const CloudGetData = this.data.CloudGetData
 3     CloudGetData.push(...res.data)
 4     this.setData({
 5         CloudGetData:CloudGetData,
 6     })
 7 } else{ // 表示第一次填数据
 8     this.setData({
 9         CloudGetData: res.data,
10         changs: this.data.changs + 1 // 表示填过数据
11     })
12 }

 

  小程序 setdata 新增数据 还可以这样写

 1 if(this.data.changs > 0){ // 表示不是第一次填数据,可以使用push
 2     this.setData({
 3         CloudGetData:[...this.data.CloudGetData,...res.data],
 4     })
 5 } else{ // 表示第一次填数据
 6     this.setData({
 7         CloudGetData: res.data,
 8         changs: this.data.changs + 1 // 表示填过数据
 9     })
10 }

 

 

我知道我菜🥦,但setData PUSH你是真的狗🐕~

posted @ 2020-04-23 17:24  letleon  阅读(4625)  评论(0编辑  收藏  举报