當我們在開發的時候用form表單經常會出現很多特殊的需求,antd本身所提供的都是比較常用的規則,比如輸入的長度,是否必填,枚舉類型等等。。。是以特殊需求我們就需要使用自定義規則validator。
最後必須callback一個資訊回來
如果效驗時代碼出錯會導緻全部規則失效
筆者在開發的過程中就遇到過第二種情況,中間代碼出錯導緻全部的rule失效:
錯誤代碼:
上方的這個代碼在你送出表單的時候如果不填寫它,它就不會觸發所有的rule。
原因是因為你沒有輸入這個值,驗證validator的時候value.length的時候就會報錯,因為你的value是一個undefined。這就是導緻所有rule失效的原因。
當我們遇到失效的時候可以用try{}catch(err){}來捕獲異常,示例代碼如下:
這時候當你在送出的時候他就會把你catch裡捕獲的異常提示出來了。
關于我上面的示例的錯誤解決辦法是給value一個預設值:
這樣就完美解決了~