情況1:普通頁面饺蔑,canvas繪制锌介,正常,生成圖片正常猾警;
情況2:自定義組件引用canvas繪制孔祸,空白;
原因:查看文檔发皿,在自定義組件內(nèi)需要手動傳入當前實例的this崔慧,否則canvas指向的this為父組件所以無法找到正確canvas;
情況3:自定義組件內(nèi)穴墅,canvas繪制好了惶室,但是canvasToTempFilePath
報fail canvas is empty
錯誤;
原因:同上玄货,但是canvasToTempFilePath({}, this)
添加this
可能無法解決皇钞,因為我使用的小程序框架是Taro
,在 Taro 的頁面和組件類中松捉,this
指向的是 Taro頁面或組件實例夹界。
所以一般我們需要獲取 Taro的頁面和組件所對應的小程序原生頁面和組件實例
,這個時候我們可以通過 this.$scope
訪問到它們隘世;
所以最后寫成:
Taro.createCanvasContext("canvas-id", this.$scope);
Taro.canvasToTempFilePath({}, this.$scope);