위챗 소프로그램 개발 중 문제 총결
1. 작은 프로그램 때문에 wx.request () 방법은 비동기적입니다. 앱에서.js가 aax를 실행하면 페이지별로 app를 불러옵니다.js의 전역 데이터를 불러올 수 없습니다.예:
//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 비동기식 함수 사용:
//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. 그림은 원본 너비만 얻을 수 있고 기존 너비는 얻을 수 없습니다.그러나 이미지 라벨은mode 속성을 봉인하여 수요에 따라 스스로 설정할 수 있습니다.3. 이미지 탭 밑에 투명한 간격이 있습니다. 패딩이 아니라margin이 아닙니다.그림 앞에서 커버층을 만들 때 구덩이가 될 수 있다.
4. 네트워크 요청은 https를 배치해야 한다
5. tabBar를 설정할 때 list 매개 변수의 pagePath 매개 변수는 최소한 app를 포함해야 합니다.json의 페이지 그룹의 첫 번째 경로입니다. 그렇지 않으면tabBar가 표시되지 않습니다.
6.tabBar 점프 시 매개변수를 사용할 수 없습니다. 해결 방법:
//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 방법으로 요청할 때 헤더를 추가해야 합니다. 헤더 [content-type] 값은 응용 프로그램/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 라벨을 불러올 수 없으며, 데이터 렌더링도 wxml 라벨(10. 안드로이드는 wx를 렌더링할 수 없습니다.request () 요청한 데이터입니다.
반환된 데이터에 BOM 헤더가 있는지 확인합니다.안드로이드의 wx.request 해석은 BOM 헤더를 건너뛰지 않습니다. 데이터가 대상이나 그룹이 아닌 문자열로 되돌아옵니다.
예:
반환된 데이터는: (3자 공백) {a:1, b:2}
해석된 데이터는'{a:1, b:2}'(문자열)이지 {a:1, b:2}(대상)가 아닙니다.
객체가 아니기 때문에 템플릿 렌더링 등은 제대로 수행되지 않습니다.해결 방법, 백그라운드에서 데이터를 되돌리기 전에 BOM 헤더를 제거하면 됩니다.만약 백그라운드가 BOM 헤드에 가지 않는다면, 전방에서 제거할 수 있지만, wx.request 만약 dataType이 부족하면 기본적으로 json이고 자동으로 해석되어 BOM 헤더를 제거할 수 없습니다.
솔루션:
wx.request({
url: url,
method: 'GET',
dataType: 'txt',
success: function(e){
let json = e.data.trim();
let arr = JSON.parse(json);
}
});
데이터 type은 json 이외의 형식으로 변경합니다. 프로그램이 자동으로 json 문자열을 해석하지 않도록 하고, 되돌아오는 데이터에 대해trim() 방법으로 공백을 없애고, 마지막으로 json 문자열을 해석하면 됩니다.11. 디버깅 시 여러 줄 생략 (-webkit-line-clamp) 이 정상이며, 발표 시 여러 줄 생략은 무효입니다.
해결 방안: 재검토하지 않으려면 백그라운드를 차단하면 된다
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
유니앱, 위챗 애플릿에서 MQTT 사용 문제(1)MQTT.js는 JavaScript로 작성된 MQTT 프로토콜의 클라이언트 라이브러리로 Node에 사용할 수 있습니다.js와 브라우저.노드에서.js단은 전역 설치를 통해 명령행 연결을 사용할 수 있으며 MQTT...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.