위 챗 애플 릿 개발 중 문제 총화
1. 애플 릿 wx. request () 방법 이 비동기 이기 때문에 app. js 에서 ajax 를 실행 한 후 각 페이지 에서 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. 모든 image 탭 아래쪽 에 투명 한 간격 이 있 습 니 다. padding 이 아 닌 margin 입 니 다.그림 앞 에 커버 를 할 때 구덩이 에 빠 질 수 있 습 니 다.
4. 네트워크 요청 은 https 를 배치 해 야 합 니 다.
5. tabBar 를 설정 할 때 list 매개 변수 에 있 는 pagePath 매개 변 수 는 app. json 에 있 는 pages 배열 의 첫 번 째 경 로 를 포함 해 야 합 니 다. 그렇지 않 으 면 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 방법 으로 요청 할 때 header, header [content - type] 값 을 application / x - ww - 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 탭 (등) 을 렌 더 링 할 수 없 으 며 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 헤드 를 제거 할 수 없습니다.
해결 방안:
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) 이 정상 이 며, 발표 시 다 중 줄 생략 이 잘못 되 었 습 니 다.
해결 방안: 재 검토 하지 않 으 려 면 백 스테이지 에서 차단 하면 됩 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다. 본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.