1.工具問題:正常的Taro的cli工具執行完成npm run dev:weapp會一直處於監聽狀態,VSCode文件改動后,Taro-cli工具會自動監聽到並且自動編譯文件,小程序的開發工具會自動重新編譯。但是有些時候在VSCode保存了文件,Taro-cli並沒有編譯代碼,導致你在小程序里面重新編譯后看不到想要的效果,此時需要注意以下幾點:
(1)Taro-cli編譯是否有報錯導致編譯失敗
(2)VSCode工具保存是否有成功
(3)小程序開發工具里面清緩存的操作
(4)有時候VSCode的確保存成功了(ctrl+s)但是,Taro-cli並沒有監聽成功,導致編譯的還是老的問題,此時建議你關閉Taro-cli同時關閉VSCode(保存)重新運行即可
2.真機調試問題:
用戶在掃碼安裝體驗版本的時候,可能出現與模擬器不一樣的結果,建議用戶清理手機的緩存之后重新掃碼安裝。
3.Taro語法的一些坑:
(1)子組件向父組件onRefreshLoginBtn={this.refreshLoginBtn.bind(this)} 傳遞參數等,記住父組件的方法一定要是on開頭(有些情況下on開頭也有問題,如果操作1后還是無法定位到,建議on方法名更改一下,可能是Taro的bug)。https://nervjs.github.io/taro/docs/event.html
(2)Refs引用,千萬不要過渡使用(最好建議不要使用),父組件直接調用子組件的方法。在同一父組件中,同時對多個子組件ref操作,編譯沒有問題,但是運行會直接報錯。
(3)自定義的組件作為子組件被父組件調用,直接在父組件中對子組件的hidden屬性操作不起作用,需要在子組件內部進行hidden操作。
(4)在組件的constructor 生命周期里調用緩存里面的內容getStorageSync 然后設置title會出現運行時錯誤,建議此種情況在componentWillMount 生命周期調用設置。
(5)視圖for循環render的操作,map方法后的視圖需要設置key,不設置會報警告。
(6)setState的數據量不易過大,微信存在一定的限制,超過setState最大限制會導致數據后續的數據無法setState操作。