您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關ant Design中this.props.form.validateFields未執行怎么解決,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在使用ant Designd的 form 組件時發現點擊提交方法中 this.props.form.validateFields((err, values) => {}) 部分未執行,也沒有報錯。
原因:
我使用了自定義校驗 validator ,在自定義校驗方法中有個錯誤,使用了未定義的變量。
注意:
1、使用validator 時,注意自定義方法中是否有錯誤;對于如何解決沒有錯誤提示,官網提示:可以選擇通過 async 返回一個 promise 或者使用 try...catch進行錯誤捕獲,具體查看官網form組件;
2、使用validator 時,自定義方法中 callback 必須被調用。
補充知識:ant design vue 表單域的validateFields取值和子item的change取值的先后問題
廢話不多,先咔的擼出代碼先
我先在created中初始化表單域form
然后在表單域子節點中綁定@change="handleChange"函數,
然后我設想是每一次單選完后打印出單選后的值
然而結果是每次打印的值是單選前的值,比如:
我開始時默認選正常,第一次選異常,打印出正常
第二次選正常,結果打印出異常
我懵逼了,一般出現這種情況應該是跟事件機制同步或者異步的先后順序有關,于是仔細設置了validateFields為異步輸出
這回輸出正常了,
果然是,個人猜測是輸入框的change事件賦值發生在表單域的validateFields()事件之后,導致取到的值是修改前的值
關于ant Design中this.props.form.validateFields未執行怎么解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。