記錄問題
在做項目的時候,項目可以正常運行,但是控制臺總是報錯,有一個數據是undefined。
分析問題
一般遇到這種情況,就是vue找不到這個數據。但是為什么能正常運行?說明是開始加載的時候找不到數據,但是加載完畢后,可以正常運行。雖然對項目本身沒有影響,但是會報錯。
如果是這種情況,有一個直接的解決方法,就是在onMounted這個生命周期,給需要賦值的變量賦一個初值。
如果賦初值還出錯怎么辦
這個問題就被我遇到了。在找了很多問題之后,發現前面的同事在寫代碼的時候,在onMounted這個生命周期函數中用到了異步寫法。
異步寫法的出現,會導致很多問題。一個是項目加載的順序問題;另一個就是,既然是async,await寫法,利用promise鏈式調用,一個請求的結果就勢必會導致整個鏈式調用的結果。
所以,這里提出的解決辦法是,不要動async里面的內容,而是在上面寫一串同步代碼,看看問題能不呢被成功解決。如果不能,就嘗試都改成同步。
==建議都改成同步或者是有明確執行順序的異步,否則很容易導致邏輯錯亂而引起其他地方的報錯。==另外需要提示的就是,當我們改了一個地方的時候,要多去測試一下與之相關的組件是否有問題,否則一個報錯可能會帶來一系列的反應。