舟山闪爸电子技术有限公司

微信小程序使用setData修改數(shù)組中的單個對象

微信小程序使用setData修改數(shù)組中的單個對象

習慣使用Vue或者React這類框架的開發(fā)者們,肯定不會對修改data內(nèi)中數(shù)組的單個對象而煩惱,因為這些框架已經(jīng)幫我們很好的處理了這個問題,并且在文檔上也寫的非常清楚。

比如要求是有一個數(shù)組存放了購物車的商品信息,而你在購物車內(nèi)修改了單個商品的期望購買數(shù)量后,我們就要動態(tài)的更新這個單個對象的購買數(shù)量值,如果在小程序里我們會怎么做呢?

如果你按照Vue的寫法來實現(xiàn)的話,不出意外會失敗。而微信小程序也只給我們提供了一個setData方法,這個方法是使用鍵值對的形式對數(shù)據(jù)進行修改,例如:

 

  1. this.setData({
  2. name : 'leon'
  3. })

回到我們剛剛的例子里,這時候,如果你想修改單個商品的數(shù)量信息,應該怎么寫?

首先展示一種錯誤的寫法:

 

  1. Page({
  2. data: {
  3. array: [{text: 'init data'}],
  4. },
  5. changeItemInArray: function (index) {
  6. this.setData({
  7. 'array['+index+'].text':'changed data'
  8. })
  9. }
  10. })

如果這樣動態(tài)的寫index,很顯然,這樣是無法使用在對象的key中的,我相信小程序的新手開發(fā)者可能嘗試過這樣的寫法。

那么正確的寫法究竟是怎么樣的呢?

 

  1. changeItemInArray: function (index) {
  2.  
  3. // 提前準備好對象
  4. var item = this.data.list[index]
  5.  
  6. item.count = 100
  7.  
  8. // 依舊是根據(jù)index獲取數(shù)組中的對象
  9. var key = "list["+ index + "]"
  10.  
  11. this.setData({
  12. // 這里使用鍵值對方式賦值
  13. key: item
  14. }, function () {})
  15. }

最后,希望以后的小程序版本更新中,有更好的賦值方法。希望這篇文章能幫助到小程序的新手開發(fā)者。

 

微信小程序使用setData修改數(shù)組中的單個對象


【本站聲明】
  1、本站文章中所選用的圖片及文字來源于網(wǎng)絡以及用戶投稿,由于未聯(lián)系到知識產(chǎn)權人或未發(fā)現(xiàn)有關知識產(chǎn)權的登記,如有知識產(chǎn)權人并不愿意我們使用,如果有侵權請立即聯(lián)系。
  2、本網(wǎng)站不對文章中所涉及的內(nèi)容真實性、準確性、可靠性負責,僅系客觀性描述,如您需要了解該類商品/服務詳細的資訊,請您直接與該類商品/服務的提供者聯(lián)系。


KESION 科汛軟件

KESION 科汛軟件是國內(nèi)領先的在線教育軟件及私域社交電商軟件服務提供商,長期專注于為企業(yè)提供在線教育軟件及社交電商SaaS平臺解決方案。
公司核心產(chǎn)品云開店SaaS社交電商服務平臺、在線教育SaaS服務平臺、教育企業(yè)數(shù)字化SaaS云平臺、企微營銷助手、私有化獨立部署品牌網(wǎng)校和在線教育咨詢等。

KESION 不斷通過技術創(chuàng)新,提供產(chǎn)品和服務,助力企業(yè)向數(shù)字化轉(zhuǎn)型,通過科技驅(qū)動商業(yè)革新,讓商業(yè)變得更智慧!



▼點擊進入科汛官網(wǎng)了解更多



熱門標簽
微信小程序 SaaS
上/下篇
換一換相關推薦
精選內(nèi)容
熱點精選