天天看点

antd的form表单自定义规则使用validator的注意事项

当我们在开发的时候用form表单经常会出现很多特殊的需求,antd本身所提供的都是比较常用的规则,比如输入的长度,是否必填,枚举类型等等。。。所以特殊需求我们就需要使用自定义规则validator。

最后必须callback一个信息回来

如果效验时代码出错会导致全部规则失效

笔者在开发的过程中就遇到过第二种情况,中间代码出错导致全部的rule失效:

错误代码:

上方的这个代码在你提交表单的时候如果不填写它,它就不会触发所有的rule。

原因是因为你没有输入这个值,验证validator的时候value.length的时候就会报错,因为你的value是一个undefined。这就是导致所有rule失效的原因。

当我们遇到失效的时候可以用try{}catch(err){}来捕获异常,示例代码如下:

这时候当你在提交的时候他就会把你catch里捕获的异常提示出来了。

关于我上面的示例的错误解决办法是给value一个默认值:

这样就完美解决了~