Maison > Article > Applet WeChat > Résumé des problèmes rencontrés lors du développement des mini programmes WeChat
Résumé des problèmes rencontrés dans le développement des mini-programmes WeChat
1 Puisque la méthode wx.request() du mini-programme est asynchrone, après que app.js exécute ajax, chaque page est chargée Les données globales de app.js ne peuvent pas être chargées dans l'ordre. Exemple :
//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 } })
Solution, utilisez la fonction asynchrone Promise :
//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. L'image ne peut obtenir que la largeur et la hauteur d'origine, mais ne peut pas obtenir la largeur et la hauteur existantes. Cependant, la balise image encapsule l'attribut mode, qui peut être défini en fonction des besoins.
3. Il y a un espace transparent au bas de chaque balise d'image, pas de remplissage, pas de marge. Vous risquez de rester bloqué lorsque vous créez un calque de masque devant l'image.
4. Les requêtes réseau doivent déployer https
5. Lors de la configuration de tabBar, le paramètre pagePath dans le paramètre list doit contenir au moins le premier chemin du tableau pages dans app.json, sinon cela entraînera que tabBar ne soit pas affiché.
6. TabBar ne peut pas prendre de paramètres lors du saut Solution :
//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. l'url doit commencer par https
8.wx.request() Lorsque vous utilisez la méthode post pour demander, vous devez également ajouter un en-tête, et la valeur d'en-tête[content-type] est application/x-www- formulaire-urlencodé. Exemple :
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. L'applet ne peut pas charger les balises HTML et le rendu des données ne peut pas restituer les balises wxml (89c662c6f8b87e82add978948dc499d2de5f4c1163741e920c998275338d29b2 etc. .), vous pouvez utiliser wxParse.js pour traiter les données associées.
10. Android ne peut pas restituer les données demandées par wx.request().
Vérifiez si les données renvoyées ont un en-tête de nomenclature (3 caractères d'espace vide). L'analyse wx.request d'Android n'ignore pas l'en-tête de la nomenclature, ce qui entraîne le renvoi des données sous forme de chaîne au lieu d'un objet ou d'un tableau.
Exemple :
Les données renvoyées sont : (3 caractères vides){a:1, b:2}
Les données analysées sont : '{a : 1 , b:2}' (chaîne), pas {a:1, b:2} (objet)
Comme il ne s'agit pas d'un objet, le rendu du modèle et autres ne fonctionneront pas correctement. La solution consiste à supprimer l'en-tête de la nomenclature avant de renvoyer les données en arrière-plan. Si l'en-tête de BOM n'est pas supprimé en arrière-plan, il peut être supprimé sur le front-end. Cependant, si le dataType de wx.request est par défaut, il sera par défaut json et sera automatiquement analysé, ce qui rendra impossible la suppression de l'en-tête de BOM. .
Solution :
wx.request({ url: url, method: 'GET', dataType: 'txt', success: function(e){ let json = e.data.trim(); let arr = JSON.parse(json); } });
Changez le dataType dans un format autre que json pour éviter que l'applet ne soit analysée automatiquement json, puis utilisez la méthode trim() sur les données renvoyées pour supprimer les espaces, et enfin analysez la chaîne json.
11. L'omission de plusieurs lignes (-webkit-line-clamp) est normale lors du débogage, mais invalide lors de la publication.
Solution : Si vous ne souhaitez pas réviser, laissez simplement l'arrière-plan tronquer
Merci d'avoir lu, j'espère que cela pourra aider tout le monde, merci pour votre soutien à ce site !
Pour plus d'articles connexes sur le résumé des problèmes rencontrés dans le développement des mini programmes WeChat, veuillez faire attention au site Web PHP chinois !