微信小程序使用setData修改數(shù)組中單個(gè)對(duì)象的方法分析
本文實(shí)例講述了微信小程序使用setData修改數(shù)組中單個(gè)對(duì)象的方法。分享給大家供大家參考,具體如下:
微信小程序已經(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ì)對(duì)修改data內(nèi)中數(shù)組的單個(gè)對(duì)象而煩惱,因?yàn)檫@些框架已經(jīng)幫我們很好的處理了這個(gè)問題,并且在文檔上也寫的非常清楚。
比如要求是有一個(gè)數(shù)組存放了購物車的商品信息,而你在購物車內(nèi)修改了單個(gè)商品的期望購買數(shù)量后,我們就要?jiǎng)討B(tài)的更新這個(gè)單個(gè)對(duì)象的購買數(shù)量值,如果在小程序里我們會(huì)怎么做呢?
如果你按照Vue的寫法來實(shí)現(xiàn)的話,不出意外會(huì)失敗。而微信小程序也只給我們提供了一個(gè)setData方法,這個(gè)方法是使用鍵值對(duì)的形式對(duì)數(shù)據(jù)進(jìn)行修改,例如:
this.setData({ name : 'leon' })
回到我們剛剛的例子里,這時(shí)候,如果你想修改單個(gè)商品的數(shù)量信息,應(yīng)該怎么寫?
首先展示一種錯(cuò)誤的寫法:
Page({ data: { array: [{text: 'init data'}], }, changeItemInArray: function (index) { this.setData({ 'array['+index+'].text':'changed data' }) } })
如果這樣動(dòng)態(tài)的寫index,很顯然,這樣是無法使用在對(duì)象的key中的,我相信小程序的新手開發(fā)者可能嘗試過這樣的寫法。
那么正確的寫法究竟是怎么樣的呢?
changeItemInArray: function (index) { // 提前準(zhǔn)備好對(duì)象 var item = this.data.list[index] item.count = 100 // 依舊是根據(jù)index獲取數(shù)組中的對(duì)象 var key = "list["+ index + "]" this.setData({ // 這里使用鍵值對(duì)方式賦值 key: item }, function () {}) }
最后,希望以后的小程序版本更新中,有更好的賦值方法。希望這篇文章能幫助到小程序的新手開發(fā)者。
希望本文所述對(duì)大家微信小程序開發(fā)有所幫助。
- 微信小程序 setData使用方法及常用錯(cuò)誤解決辦法
- 微信小程序 setData的使用方法詳解
- 微信小程序報(bào)錯(cuò):this.setData is not a function的解決辦法
- 微信小程序中this.data與this.setData的區(qū)別詳解
- 微信小程序 JS動(dòng)態(tài)修改樣式的實(shí)現(xiàn)方法
- 微信小程序?qū)崿F(xiàn)點(diǎn)擊按鈕修改view標(biāo)簽背景顏色功能示例【附demo源碼下載】
- 微信小程序?qū)崿F(xiàn)點(diǎn)擊按鈕修改文字大小功能【附demo源碼下載】
- 微信小程序?qū)崿F(xiàn)點(diǎn)擊按鈕修改字體顏色功能【附demo源碼下載】
- 微信小程序點(diǎn)擊控件修改樣式實(shí)例詳解
- 微信小程序 JS動(dòng)態(tài)修改樣式的實(shí)現(xiàn)代碼
相關(guān)文章
JavaScript offset實(shí)現(xiàn)鼠標(biāo)坐標(biāo)獲取和窗口內(nèi)模塊拖動(dòng)
在頁面開發(fā)時(shí)我們少不了各種鼠標(biāo)交互動(dòng)作,那么JavaScript中如何實(shí)現(xiàn)鼠標(biāo)坐標(biāo)獲取和窗口內(nèi)模塊拖動(dòng),本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-05-05javascript+css3開發(fā)打氣球小游戲完整代碼
這是一個(gè)簡單但是印象深刻的小游戲,打氣球小游戲的實(shí)現(xiàn)代碼,主要基于js和css3,基于css3畫氣球,具體實(shí)現(xiàn)代碼大家參考下本文2017-11-11基于iScroll實(shí)現(xiàn)內(nèi)容滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于iScroll實(shí)現(xiàn)內(nèi)容滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03JavaScript模擬深藍(lán)vs卡斯帕羅夫的國際象棋對(duì)局示例
這篇文章主要介紹了JavaScript模擬深藍(lán)vs卡斯帕羅夫的國際象棋對(duì)局示例,使用javascript較為逼真的模擬出了國際象棋對(duì)弈的場景,需要的朋友可以參考下2015-04-04javascript中call apply 的應(yīng)用場景
call, apply都屬于Function.prototype的一個(gè)方法,它是JavaScript引擎內(nèi)在實(shí)現(xiàn)的,因?yàn)閷儆贔unction.prototype,所以每個(gè)Function對(duì)象實(shí)例,也就是每個(gè)方法都有call, apply屬性.2015-04-04登陸成功后自動(dòng)計(jì)算秒數(shù)執(zhí)行跳轉(zhuǎn)
本文實(shí)現(xiàn)的是這樣的一個(gè)功能登陸成功后自動(dòng)查秒跳轉(zhuǎn),具體示例如下,不了解的朋友可以學(xué)習(xí)下哦2014-01-01