小程序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你是真的狗🐕~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM