component constructors should be called while initialization. a constructor call has been ignored.
component像頁面一樣由wxml、wxss、js和json4個檔案組成,且需要把這4個檔案放在同乙個目錄中。與頁面不一樣的是,component中的建構函式(也可以稱構造器)是component({}),而頁面中的建構函式是page({})。
錯誤案例二
referenceerror: ***xx is not defined
如:var countx = county = countz = 0; js中是可以這樣寫
解決方法:按照規範命名變數
var countx = 0,county = 0,countz = 0;
var countx = 0;
var county = 0;
var countz = 0;
錯誤案例三
this.setdata is not a function報錯處理
這種情況一般會出現在 wx.request({})中使用時,類似success: function (res) 無法使用this.setdata,
所以在前面加一句:var that = this;即可解決問題
setdata是非同步,而this.data是同步的
錯誤案例四
cannot read property 'setdata' of undefined;at pages/index/index page changtext function
typeerror: cannot read property 'setdata' of undefined
在es6 的寫法是這個樣子的
changtext:() => {
this.setdata({
motto: "dad"
在es5下 是正常顯示
changtext: (function () {
console.log(this);
this.setdata({
motto: "dad"
為什麼es5正確顯示而es6卻不行呢?
箭頭函式表示式的語法比函式表示式更短,並且不繫結自己的this,arguments,super或 new.target。這些函式表示式最適合用於非方法函式,並且它們不能用作建構函式。
其實說白了es6的箭頭函式和es5 function函式看起來差不多,只是寫法簡化了,其實是不一樣的,function宣告的函式和箭頭函式的作用域不同,這是乙個不小心坑的地方。
所以對於這個結果,還是換回es5的function函式去寫最好了。
箭頭函式和function的區別:
箭頭函式體內的this物件,就是定義時所在的物件,而不是使用時所在的物件
箭頭函式不可以當作建構函式,也就是說,不可以使用new命令,否則會丟擲乙個錯誤
箭頭函式不可以使用arguments物件,該物件在函式體內不存在。如果要用,可以用rest引數代替,不可以使用yield命令,因此箭頭函式不能用作generator函式。
錯誤案例五遇到警告
warning: now you can provide attr "wx:key" for a "wx:for" to improve performance.
相當於取乙個別名 沒有說明什麼實際效果 隨便起名字 就可以消除錯誤
錯誤案例六this的指向問題
原文:
小程式 跳坑
關於元件 1.元件中包含定時器,頁面離開定時器的清除 問題 在頁面離開後倒計時仍在繼續 解決 在頁面離開時清除定時器 2.場景 頁面中包含不同tab頁面,各tab頁面模板一致,模板內包含的元件id也一樣,在tab切換時重新整理tab頁內資料。解決 在tab切換時先將舊資料字段清空 3.場景 把lis...
小程式的坑
一 input元件的問題 1 placeholder 文字與 input 的值重疊 暫無解決方法 2 獲取焦點 和 失去焦點 時,游標和文字跳動 暫無解決方法 3 當 input 設定為居中對齊時,游標會出現在奇怪的位置 暫無解決方法 4 bindconfirm 事件在失去焦點時也會觸發,類似於 b...
微信小程式中未解決的坑
1 movetolocation的問題 在onload中初始化了地圖 this.mapctx wx.createmapcontext map 但是立馬呼叫 this.mapctx.movetolocation 是不會執行的,可能是因為createmapcontext是非同步的原因,但是官方文件沒有說...