小程序模板網(wǎng)

微信小程序中如何使用setData修改數(shù)組或?qū)ο笾械哪骋粎?shù)

發(fā)布時間:2018-04-23 11:12 所屬欄目:小程序開發(fā)教程

本人也是剛開始接觸微信小程序,在微信小程序中經(jīng)常會遇到修改數(shù)組中某一項(xiàng)的值,比如array[0]或者是對象中object.item的值。這些值在微信小程序中都需要使用一個名為setData的方法,而這個方法是通過鍵值對的形式對數(shù)據(jù)進(jìn)行修改,setData({ 參數(shù)名: 值 }); 
既然知道是以鍵值對的方式進(jìn)行傳參,那么我們在修改數(shù)組和對象的時候就直接將要修改的參數(shù)名寫成對應(yīng)字符串就可以了,然后使用[]將字符串括起來,這就告訴編譯器這是指向的是該字符對應(yīng)的實(shí)際位置,如下:

 

				
  1. var authority = 'buttonGroup.authority'
  2. that.setData({
  3. [authority]: parseInt(level)
  4. })
 

				
  1. var printPrice = "item["+i+"].print_price";
  2. this.setData({
  3. [printPrice]: e.detail.value
  4. });

微信小程序地圖api開發(fā)真機(jī)預(yù)覽崩潰

 

前言  微信小程序開發(fā)地圖api中遇到了一個坑,ide上跑起來沒有問題,放到真機(jī)上預(yù)覽就像抽了一樣亂蹦亂跳,然后crash..  背景  小程序中有圖標(biāo)1記錄了當(dāng)前用戶的位置,現(xiàn)在還要一個圖標(biāo)2記錄地圖中心的位置,用戶可以移動地圖,將他想要選擇的目的地移動到地圖的中心就好了  主題  1.那么先看看布局,布局很簡單,如下見

 

					
  1. class="map-view">
  2. id="myMap" latitude="{{latitude}}" longitude="{{longitude}}" controls="{{controls}}" show-location bindregionchange="regionchange" bindcontroltap="controlstap" style="width: {{mapWidth}}; height: {{mapHeight}};top: {{mapTop}}"/>
  3.  

2.監(jiān)聽用戶移動的地圖的方法小程序也給出了,布局中的bindregionchange就是,重寫下:

 

					
  1. regionchange(e) {
  2. // 地圖發(fā)生變化的時候,獲取中間點(diǎn),也就是用戶選擇的位置
  3. if (e.type == 'end') {
  4. var that = this;
  5. this.mapCtx.getCenterLocation({
  6. success: function (res) {
  7. that.setData({
  8. longitude: res.longitude
  9. , latitude: res.latitude
  10. })
  11.  
  12. // that.setData({
  13. // long: res.longitude
  14. // , lat: res.latitude
  15. // })
  16.  
  17. }
  18. })
  19. }

看似也沒什么毛病,布局中的經(jīng)度(latitude)緯度(longitude)就是記錄中心位置的,我移動地圖的話重置經(jīng)緯度也應(yīng)該在監(jiān)聽地圖移動的實(shí)現(xiàn),IDE上跑起來也流暢,然真機(jī)上預(yù)覽就出問題了,亂動一通后就崩潰了。  至今也沒想明白問題出在哪兒,現(xiàn)在想了一個辦法,在page中data設(shè)置兩個變量long,lat來記錄中心位置,也就是代碼片段中注釋的部分,真機(jī)上跑起來就沒問題了。



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