本人也是剛開始接觸微信小程序,在微信小程序中經常會遇到修改數組中某一項的值,比如array[0]或者是對象中object.item的值。這些值在微信小程序中都需要使用一個名為setData的方法,而這個方法是通過鍵值對的形式對數據進行修改,setData({ 參數名: 值 });
既然知道是以鍵值對的方式進行傳參,那么我們在修改數組和對象的時候就直接將要修改的參數名寫成對應字符串就可以了,然后使用[]將字符串括起來,這就告訴編譯器這是指向的是該字符對應的實際位置,如下:
-
var authority = 'buttonGroup.authority'
-
that.setData({
-
[authority]: parseInt(level)
-
})
-
var printPrice = "item["+i+"].print_price";
-
this.setData({
-
[printPrice]: e.detail.value
-
});
微信小程序地圖api開發真機預覽崩潰
前言 微信小程序開發地圖api中遇到了一個坑,ide上跑起來沒有問題,放到真機上預覽就像抽了一樣亂蹦亂跳,然后crash.. 背景 小程序中有圖標1記錄了當前用戶的位置,現在還要一個圖標2記錄地圖中心的位置,用戶可以移動地圖,將他想要選擇的目的地移動到地圖的中心就好了 主題 1.那么先看看布局,布局很簡單,如下見
-
class="map-view">
-
-
2.監聽用戶移動的地圖的方法小程序也給出了,布局中的bindregionchange就是,重寫下:
-
regionchange(e) {
-
// 地圖發生變化的時候,獲取中間點,也就是用戶選擇的位置
-
if (e.type == 'end') {
-
var that = this;
-
this.mapCtx.getCenterLocation({
-
success: function (res) {
-
that.setData({
-
longitude: res.longitude
-
, latitude: res.latitude
-
})
-
-
// that.setData({
-
// long: res.longitude
-
// , lat: res.latitude
-
// })
-
-
}
-
})
-
}
看似也沒什么毛病,布局中的經度(latitude)緯度(longitude)就是記錄中心位置的,我移動地圖的話重置經緯度也應該在監聽地圖移動的實現,IDE上跑起來也流暢,然真機上預覽就出問題了,亂動一通后就崩潰了。 至今也沒想明白問題出在哪兒,現在想了一個辦法,在page中data設置兩個變量long,lat來記錄中心位置,也就是代碼片段中注釋的部分,真機上跑起來就沒問題了。
|