网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網(wǎng)

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

發(fā)布時(shí)間:2018-06-08 10:22 所屬欄目:小程序開發(fā)教程

微信小程序已經(jīng)出來挺久的時(shí)間了,之前只是在文檔上粗略的看了一下,最近稍得空閑,便利用微信小程序平臺(tái)寫一個(gè)練手的項(xiàng)目,順便學(xué)習(xí)一下小程序開發(fā),感覺大體跟前端開發(fā)基本類似,但是因?yàn)槭窃谖⑿诺钠脚_(tái)上運(yùn)行,具體還是要根據(jù)小程序的規(guī)則來編寫代碼的,其中還是有部分的內(nèi)容跟前端中常見的有所不同,于是接下來的博客里,也會(huì)順手記錄微信小程序開發(fā)過程中的一些坑,幫助后來的小程序開發(fā)者少踩一些坑,當(dāng)然我踩的坑大部分都是以前的開發(fā)者踩過的,我所做的也僅僅是記錄,分享。

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

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

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

 

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

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

首先展示一種錯(cuò)誤的寫法:

 

  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. })

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

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

 

  1. changeItemInArray: function (index) {
  2.  
  3. // 提前準(zhǔn)備好對象
  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ā)者


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/24519.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢
AI智能客服 ×