一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 微信小程序 開發中遇到問題總結

微信小程序 開發中遇到問題總結

2020-08-11 18:56_NKi Java教程

這篇文章主要介紹了微信小程序 開發中遇到問題總結的相關資料,需要的朋友可以參考下

微信小程序 開發中遇到問題總結

1.由于小程序wx.request()方法是異步的,在app.js執行ajax后,各分頁加載app.js的全局數據時,無法按順序加載。例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//app.js
App({
  ajax:function(){
    let that = this;
    wx.request({
      url: 'https://a.com/url.php',
      method: 'GET',
      success: function(e){
        that.data = 123;
      }
    })
  };
})
//content.js
let app = getApp()
Page({
  getData: function(){;
    app.ajax();
    console.log(app.data); //undefined
  }
})

解決方法,使用Promise異步函數:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//app.js
App({
  ajax:function(){
    let that = this;
    let promise = new Promise(function(resolve, reject){
      wx.request({
        url: 'https://a.com/url.php',
        method: 'GET',
        success: function(e){
          that.data = 123;
          resolve();
        }
      })
    });
  };
})
//content.js
let app = getApp()
Page({
  getData: function(){;
    app.ajax().then(()=>{
      console.log(app.data); //123
    });
  }
})

2.圖片只能獲取原始寬高,無法獲取現有寬高。不過image標簽封裝了mode屬性,可以根據需求自行設置。

3.每個image標簽底部有一條透明間隔,非padding,非margin。在圖片前面做遮罩層時可能會被坑。

4.網絡請求必須部署https

5.配置tabBar時,list參數中的pagePath參數至少需要包含app.json里pages數組中的第一個路徑,否則會導致tabBar不顯示。

6.tabBar跳轉時無法帶參數,解決方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//search.js
var app = getApp();
Page({
  confirm: function(e){
    //獲取數據,添加到全局
    let val = e.detail.value;
    app.searchWord = val;
    this.jump();
  },
  jump: function(){
    //跳轉tabBar
    wx.switchTab({
      url: '../index/index',
    });
  },
});
 
//index.js
var app = getApp();
Page({
  onShow: function(e){
    //獲取全局數據
    let val = app.searchWord;
  }
});
//需要傳遞參數的頁面在跳轉前將數據添加到app.js里。需要接受參數的頁面在onShow方法接受之前添加到app.js的數據。
  

7.小程序wx.request()方法請求的url必須是https開頭

8.wx.request()使用post方法請求時,還需要加上header,header[content-type]值為application/x-www-form-urlencoded。例:

?
1
2
3
4
5
6
7
8
9
10
11
wx.request({
  url: 'https://a.com/url.php',
  data: {message: 123},
  method: 'POST',
  header: {
    'content-type': 'application/x-www-form-urlencoded'
  },
  success: function(e){
    console.log(e)
  }
});

 9.小程序無法加載html標簽,同時數據渲染也無法渲染wxml標簽(<view></view>等),可以使用wxParse.js來處理相關數據。

10.安卓無法渲染wx.request()請求的數據。

檢測返回的數據是否有BOM頭(3個字符的空白)。安卓的wx.request解析不會跳過BOM頭,導致數據返回的是字符串,而不是對象或者數組。

例:

返回的數據是:(3個字符的空白){a:1, b:2}

解析的數據是:'{a:1, b:2}'(字符串),而不是{a:1, b:2}(對象)

由于不是對象,模板渲染之類會無法正常進行。解決方法,后臺返回數據前去掉BOM頭就行。如果后臺不會去BOM頭,可以在前端去除,但是wx.request如果dataType缺省,會默認為json并自動解析,導致無法去除BOM頭。

解決方案:

?
1
2
3
4
5
6
7
8
9
wx.request({
  url: url,
  method: 'GET',
  dataType: 'txt',
  success: function(e){
    let json = e.data.trim();
    let arr = JSON.parse(json);
  }
});

dataType改為json以外的格式,避免小程序自動解析json字符串,然后對返回的數據用 trim() 方法去掉空白,最后解析json字符串就行。

11.調試時多行省略(-webkit-line-clamp)正常,發布時多行省略無效。

解決方案:如果不想重新審核,讓后臺截斷就好

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

原文鏈接:http://www.cnblogs.com/NKnife/p/6283605.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野结衣伦理在线观看 | cos美女被黄网站 | 欧美va天堂va视频va在线 | 2021最新国产成人精品免费 | 97自拍视频在线观看 | 国产自拍啪啪 | 国产亚洲sss在线观看 | brazzers办公室 | 黑人操日本妞 | 国产精品成人扳一级aa毛片 | 99久久999久久久综合精品涩 | 精品综合久久久久久8888 | 日产精品一卡2卡三卡4乱码久久 | 日本无卡码一区二区三区 | 国产成人久久久精品一区二区三区 | 午夜无码国产理论在线 | 狠狠干综合网 | 女人扒开下面让男人桶爽视频 | 成人影院在线观看视频 | 精品一区二区三区视频日产 | 成人国产在线视频 | 青青在线视频免费 | 91色porny| 三上悠亚精品专区久久 | 欧美日韩亚洲区久久综合 | 五月激激激综合网色播免费 | 亚洲AV无码一区二区三区乱子伦 | 给我免费的视频在线观看 | 喜欢老头吃我奶躁我的动图 | 国产成人亚洲综合网站不卡 | 精品国产福利在线 | 手机在线免费观看日本推理片 | 亚1洲二区三区四区免费 | 欧美洲大黑香蕉在线视频 | a天堂视频| 欧美一级欧美三级在线 | 日日碰日日操 | 男女拍拍拍免费视频网站 | 俄罗斯伦理片 | 国产真实乱子伦xxxxchina | 日本中文字幕二区三区 |