1, 위챗 애플릿에서 wx.request ({}); 메서드 호출의 성공 또는 실패 후 페이지 초기화 데이터를 가져와야 하는 경우가 있습니다. 이때 this.data 를 사용하여 얻으면 가져오지 않고 디버그 페이지도 undefiend 를 보고합니다.
그 이유는 JavaScript 에서 이것은 현재 객체를 나타내며, wx.request({}) 에서 프로그램을 실행하는 동안 컨텍스트에 따라 변경됩니다. 메서드의 콜백 함수에서 객체가 변경되어 더 이상 wx.request ({}) 가 아닙니다. 메소드 객체가 사라지고 데이터 속성이 존재하지 않습니다. 공식 솔루션은 다음과 같이 현재 객체를 복제하는 것입니다.
Var that = this// 이 객체를 임시 변수에 복사합니다. 성공적인 콜백 함수에서 that.data 를 사용하여 데이터를 얻을 수 있습니다.
2, 다음은 수정 코드입니다. setData 가 필요합니다. 그렇지 않으면 지도가 갱신되지 않습니다. -응?
태그: {iconPath:
"/picture/bike.png", id: 0, 위도: 23.099994, 경도:
1 13.324520, 너비: 50, 높이: 50}
For(var I = 0;; 나< 자원 데이터 길이; I++){ //
That.data.markers[i]. Id = I;; -응? //mark.id = I; Var param =
{}; Var string = "markers["+i+"]. Id "; Param[string] =
Res.data[i] 입니다. Bike _ id that.setdata (param);
Var string="markers["+i+"]. 아이콘 경로 "; Param[string]
= "/picture/bike.png"; That.setdata (param); 변수를 정의합니다
String = "markers["+i+"]. 위도 "; Param[string] =
Res.data[i] 입니다. 자전거 _ 위도 That.setdata (param);
-응? Var string = "markers["+i+"]. 경도 ";
Param[string] = res.data[i] 입니다. 자전거 _ 경도
That.setdata (param); -응? Var 문자열 =
태그 ["+i+"]. 폭 "; Param [string] = 50;
That.setdata (param); -응? Var string = "markers["+i+"]. 높이 ";
Param [string] = 50; That.setdata (param);
-응? /* that.setData({? 태그: [{ iconPath:
"/picture/bike.png", id: 0, 위도: 23.099994, 경도:
1 13.324520, 너비: 50, 높이: 50? }]}) */?
-응? }? //? Console.log(res.data[ 1]) 변수
마크 = that.data.markers; That.setData({markers:markk})
설정 애플릿 setData (), 바이두가 찾은:/article/111691.htm