淺談Vue+Ant Design form表單的一些坑
最近在用 vue + ant 寫項目發(fā)現(xiàn) from 組件的坑還是比較多的
設置默認值的坑
控制臺報 Warning: You cannot set a form field before rendering a field associated with the value. You can use getFieldDecorator(id, options)
instead v-decorator="[id, options]"
to register it before render.
問題原因: 產(chǎn)生此問題的原因是 調(diào)用 setFieldsValue 方法時 入?yún)ο笤O置了一些不該存 在 或頁面異步判斷的一些值
此時的 row 是直接調(diào)用接口拿到的數(shù)據(jù) 有一些其他不需要設置的值 如創(chuàng)建時間, 這時候就會報錯
解決思路: 使用 lodash.pick 方法和 object.assign 來設置需要渲染表單的值
優(yōu)化后:
之后又出現(xiàn)了新的問題, 因為頁面上的異常處理是異步判斷的, 使用了 serializeType 來判斷是否顯示, 這時候直接設置 exceptionHandler 也是會報同樣的錯誤
解決思路: 用 promise 先設置可以直接渲染的值 其他異步判斷的值二次渲染
優(yōu)化后:
問題解決
自定義 v-decorator 組件的坑
控制臺報: Warning: MachineMultiSelector default value
can not collect, please use option.initialValue
to set default value.
自定義 v-decorator 的組件需要兩個基本設置, 父傳子的 value 屬性, 和 value 發(fā)生變化子傳父的change 事件
這個問題產(chǎn)生的原因是 不可以給 props 的 value 設置默認值, 可以用 decorator.option.initialValue 屬性設置默認值
修改后:
問題解決
到此這篇關(guān)于淺談Vue+Ant Design form表單的一些坑的文章就介紹到這了,更多相關(guān)Vue Ant Design form表單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue項目出現(xiàn)ERESOLVE could not resolve問題及解決
這篇文章主要介紹了vue項目出現(xiàn)ERESOLVE could not resolve問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10Vue3+Element?Plus使用svg加載iconfont的處理方法
這篇文章主要介紹了Vue3+Element?Plus使用svg加載iconfont的解決方案,本文詳細介紹了如何在Element?Plus中使用iconfont,簡單的說就是要將其封裝成SVG,并且支持動態(tài)修改顏色,需要的朋友可以參考下2022-08-08Vue3使用Element?Plus實現(xiàn)列表界面的方法步驟
寫后臺管理的時候會有很多列表以及相應的條件查詢,下面這篇文章主要給大家介紹了關(guān)于Vue3使用Element?Plus實現(xiàn)列表界面的方法步驟,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-04-04Vue實現(xiàn)實時更新sessionStorage數(shù)據(jù)的示例代碼
這篇文章主要為大家詳細介紹了Vue如何實現(xiàn)實時更新sessionStorage數(shù)據(jù),文中的示例代碼講解詳細,具有一定的參考價值,需要的可以參考一下2023-06-06