微信小程序setData使用方法及常用錯(cuò)誤解決辦法

微信小程序 setData使用方法及常用錯(cuò)誤解決辦法

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、黑河ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的黑河網(wǎng)站制作公司

最近在弄微信小程序,類似于共享單車用來練練手,基本原理就是小程序發(fā)送經(jīng)緯度給服務(wù)器,服務(wù)器從數(shù)據(jù)庫中檢索經(jīng)緯度附近的單車傳給小程序。

就在這里。。沒錯(cuò)就是這里,傳回來的值是以jsonarray格式傳過來的。
我需要將jsonarray進(jìn)行解析獲取經(jīng)緯度,ID等車輛信息,然后賦值給小程序地圖上的mark,一般我的思路時(shí)直接用個(gè)for循環(huán)給每個(gè)mark進(jìn)行賦值然后再Setdata一下就ok,

結(jié)果沒想到小程序setData()設(shè)置數(shù)組對(duì)象的某個(gè)元素的屬性時(shí)根本沒用。。。。。

然后百度一會(huì)兒找到了方法   https://www.jb51.net/article/111691.htm

最近在使用微信小程序的setData時(shí),遇到了以下問題。如下:

官網(wǎng)文檔在使用setData()設(shè)置數(shù)組對(duì)象的某個(gè)元素的屬性時(shí),是這么使用的:

Page({
 data: {
  array: [{text: 'init data'}],
 },
 changeItemInArray: function() {
  this.setData({
   'array[0].text':'changed data'
  })
 }
})

使用了 ‘a(chǎn)rray[0].text' : ‘changed data' 這樣的值。但在實(shí)際使用中,我們對(duì)數(shù)組的中的某個(gè)元素的設(shè)置是動(dòng)態(tài)的。即 我們通常應(yīng)該是‘a(chǎn)rray[‘+index+'].text' : ‘changed data' ,其中index應(yīng)該是一個(gè)動(dòng)態(tài)的數(shù)字。但顯然,這樣是無法使用在對(duì)象的key中的。

所以,我只能使用了一個(gè)變通的方法。如下:

var param = {};
var string = "array["+index+"].text;
param[string] = 'changed data';
that.setData(param);

這個(gè)每個(gè)屬性都需要來一次。。。

不知道是我沒找到更好的方法還是怎樣,我的強(qiáng)迫癥都出來了。。

下面就是我的代碼。。。

 markers: {
   iconPath: "/picture/bike.png",
   id: 0,
   latitude: 23.099994,
   longitude: 113.324520,
   width: 50,
   height: 50
  }

這是markers類結(jié)構(gòu),我為了賦值寫了這么多。。

for(var i = 0; i < res.data.length; i++){
       // that.data.markers[i].id=i;
        // mark.id=i;
       var param = {};
       var string = "markers["+i+"].id";
       param[string] = res.data[i].Bike_id;       
        that.setData(param);


       var string="markers["+i+"].iconPath";
       param[string] ="/picture/bike.png";
       that.setData(param);


       var string = "markers["+i+"].latitude";
       param[string] = res.data[i].BIKE_latitude;       
        that.setData(param);
     


       var string = "markers["+i+"].longitude";
       param[string] = res.data[i].BIKE_longitude;       
        that.setData(param);




        var string = "markers["+i+"].width";
       param[string] = 50;       
        that.setData(param);


        var string = "markers["+i+"].height";
       param[string] = 50;       
        that.setData(param);
        /* that.setData({
        markers:[{
   iconPath: "/picture/bike.png",
   id: 0,
   latitude: 23.099994,
   longitude: 113.324520,
   width: 50,
   height: 50
        }]
       })*/
       }
     //   console.log(res.data[1])
       var markk=that.data.markers;
       that.setData({markers:markk})

最后還必須setData一下,不然地圖不會(huì)刷新。。

如果QT瞬間弄好,真的麻煩。。。。。。。。。。。。。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

當(dāng)前標(biāo)題:微信小程序setData使用方法及常用錯(cuò)誤解決辦法
網(wǎng)址分享:http://muchs.cn/article22/ijsdjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、營銷型網(wǎng)站建設(shè)、Google、全網(wǎng)營銷推廣面包屑導(dǎo)航、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)