微信小程序 開發(fā)中遇到問題總結(jié)
微信小程序 開發(fā)中遇到問題總結(jié)
1.由于小程序wx.request()方法是異步的,在app.js執(zhí)行ajax后,各分頁加載app.js的全局?jǐn)?shù)據(jù)時(shí),無法按順序加載。例:
//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異步函數(shù):
//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.圖片只能獲取原始寬高,無法獲取現(xiàn)有寬高。不過image標(biāo)簽封裝了mode屬性,可以根據(jù)需求自行設(shè)置。
3.每個(gè)image標(biāo)簽底部有一條透明間隔,非padding,非margin。在圖片前面做遮罩層時(shí)可能會(huì)被坑。
4.網(wǎng)絡(luò)請求必須部署https
5.配置tabBar時(shí),list參數(shù)中的pagePath參數(shù)至少需要包含app.json里pages數(shù)組中的第一個(gè)路徑,否則會(huì)導(dǎo)致tabBar不顯示。
6.tabBar跳轉(zhuǎn)時(shí)無法帶參數(shù),解決方法:
//search.js
var app = getApp();
Page({
confirm: function(e){
//獲取數(shù)據(jù),添加到全局
let val = e.detail.value;
app.searchWord = val;
this.jump();
},
jump: function(){
//跳轉(zhuǎn)tabBar
wx.switchTab({
url: '../index/index',
});
},
});
//index.js
var app = getApp();
Page({
onShow: function(e){
//獲取全局?jǐn)?shù)據(jù)
let val = app.searchWord;
}
});
//需要傳遞參數(shù)的頁面在跳轉(zhuǎn)前將數(shù)據(jù)添加到app.js里。需要接受參數(shù)的頁面在onShow方法接受之前添加到app.js的數(shù)據(jù)。
7.小程序wx.request()方法請求的url必須是https開頭
8.wx.request()使用post方法請求時(shí),還需要加上header,header[content-type]值為application/x-www-form-urlencoded。例:
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標(biāo)簽,同時(shí)數(shù)據(jù)渲染也無法渲染wxml標(biāo)簽(<view></view>等),可以使用wxParse.js來處理相關(guān)數(shù)據(jù)。
10.安卓無法渲染wx.request()請求的數(shù)據(jù)。
檢測返回的數(shù)據(jù)是否有BOM頭(3個(gè)字符的空白)。安卓的wx.request解析不會(huì)跳過BOM頭,導(dǎo)致數(shù)據(jù)返回的是字符串,而不是對象或者數(shù)組。
例:
返回的數(shù)據(jù)是:(3個(gè)字符的空白){a:1, b:2}
解析的數(shù)據(jù)是:'{a:1, b:2}'(字符串),而不是{a:1, b:2}(對象)
由于不是對象,模板渲染之類會(huì)無法正常進(jìn)行。解決方法,后臺(tái)返回?cái)?shù)據(jù)前去掉BOM頭就行。如果后臺(tái)不會(huì)去BOM頭,可以在前端去除,但是wx.request如果dataType缺省,會(huì)默認(rèn)為json并自動(dòng)解析,導(dǎo)致無法去除BOM頭。
解決方案:
wx.request({
url: url,
method: 'GET',
dataType: 'txt',
success: function(e){
let json = e.data.trim();
let arr = JSON.parse(json);
}
});
dataType改為json以外的格式,避免小程序自動(dòng)解析json字符串,然后對返回的數(shù)據(jù)用 trim() 方法去掉空白,最后解析json字符串就行。
11.調(diào)試時(shí)多行省略(-webkit-line-clamp)正常,發(fā)布時(shí)多行省略無效。
解決方案:如果不想重新審核,讓后臺(tái)截?cái)嗑秃?/p>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
java實(shí)現(xiàn)網(wǎng)站微信掃碼支付
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)網(wǎng)站微信掃碼支付,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
hibernate中HQL如何調(diào)用自定義函數(shù)
這篇文章主要介紹了hibernate中HQL如何調(diào)用自定義函數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
SpringBoot 下的 Static 文件夾打包成前端資源的示例代碼
這篇文章主要介紹了SpringBoot 下的 Static 文件夾如何打包成前端資源,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
java Unicode和UTF-8之間轉(zhuǎn)換實(shí)例
這篇文章主要介紹了java Unicode和UTF-8之間轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Java Spring Cloud Bus 實(shí)現(xiàn)配置實(shí)時(shí)更新詳解
這篇文章主要介紹了SpringCloud Bus如何實(shí)現(xiàn)配置刷新,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09
詳解SpringBoot如何自定義一個(gè)Starter
小伙伴們曾經(jīng)可能都經(jīng)歷過整天寫著CURD的業(yè)務(wù),都沒寫過一些組件相關(guān)的東西,這篇文章記錄一下SpringBoot如何自定義一個(gè)Starter。原理和理論就不用多說了,可以在網(wǎng)上找到很多關(guān)于該方面的資料,這里主要分享如何自定義2022-11-11
Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法
這篇文章主要介紹了Spring?MVC基于注解的使用JSON數(shù)據(jù)處理,json是一種輕量級的數(shù)據(jù)交換格式,是一種理想的數(shù)據(jù)交互語言,它易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
又又叕出BUG啦!理智分析Java NIO的ByteBuffer到底有多難用
網(wǎng)絡(luò)數(shù)據(jù)的基本單位永遠(yuǎn)是byte,Java NIO提供ByteBuffer作為字節(jié)的容器,但該類過于復(fù)雜,有點(diǎn)難用.本篇文章就帶大家簡單了解一下 ,需要的朋友可以參考下2021-06-06

