代碼因為在保密機上,這里只進行描述並截取elemen文檔中的代碼作為參考
今天在開發一個很簡單需求的時候遇到的問題,在使用elementui的表單功能,將增和改的表單進行了復用,是在表單的父組件 drawer 的 close 事件中進行resetForm ,但事實上先點擊edit按鈕 再點add按鈕后,表單並沒有進行預期的重置
經過對elementui組件中源代碼的邏輯查看,發現問題出在了resetFields()這個方法上,這個方法調用的時候會先將form中的props 內容保存,然后當用戶對表單進行編輯之后,關閉drawer,觸發resetForm事件,resetFields()方法會將表單重置
為之前保存的form中的props內容,而並不是像想象中將表單中的props直接清空。 因此需要在觸發事件中加上settimeout 或者 tick 方法,等待dom將表單渲染完成后再存儲空的form中的props。
今天為了這個bug console了全組件的變量,最終發現了問題,希望世界沒有BUG