Zusammenfassung der bei der Entwicklung von WeChat-Miniprogrammen aufgetretenen Probleme
1. Da die wx.request()-Methode des Miniprogramms asynchron ist, nachdem app.js Ajax ausgeführt hat, Jede Seite wird geladen. Die globalen Daten von app.js können nicht der Reihe nach geladen werden. Beispiel:
//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 } })
Lösung: Verwenden Sie die asynchrone Promise-Funktion:
//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. Das Bild kann nur die ursprüngliche Breite und Höhe erhalten, nicht jedoch die vorhandene Breite und Höhe. Das Bild-Tag kapselt jedoch das Modusattribut, das je nach Bedarf festgelegt werden kann.
3. Am unteren Rand jedes Bild-Tags befindet sich ein transparenter Raum, kein Abstand, kein Rand. Beim Erstellen einer Maskenebene vor dem Bild kann es zu Problemen kommen.
4. Netzwerkanforderungen müssen https bereitstellen
5. Bei der Konfiguration von tabBar muss der pagePath-Parameter im Listenparameter mindestens den ersten Pfad im Seitenarray in app.json enthalten Dies führt dazu, dass tabBar nicht angezeigt wird.
6. TabBar kann beim Springen keine Parameter annehmen:
//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的数据。
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) } });
Lösung:
wx.request({ url: url, method: 'GET', dataType: 'txt', success: function(e){ let json = e.data.trim(); let arr = JSON.parse(json); } });