
element ui表单动态校验及数据回显延迟引发的校验问题解决方案
在使用Element UI构建表单时,动态校验经常会遇到挑战,尤其当校验规则依赖异步接口数据时。接口响应慢会导致校验规则错乱,例如:必填项的星号消失,但必填提示仍然存在。本文分析此类问题,并提供有效的解决方法。
问题描述:
组件的rules属性依赖多个变量:propertyInfo.propertyCategory,isCutomadded,showEstAdressbui和editNewDataRule。只有当propertyInfo.propertyCategory等于1,且isCutomadded为false,showEstAdressbui为true,editNewDataRule为true时,buildingNameWithCulture字段才需要必填校验(required: true);否则不需要校验(required: false)。由于isCutomadded和showEstAdressbui依赖异步接口,接口响应慢导致required属性先设置为true,随后又变为false,从而造成星号消失但必填提示依然存在的现象。
代码片段(原代码):
解决方案:
将required: false的情况用空数组[]代替,修改后的代码如下:
代码片段(修改后代码):
使用空数组[]代替 { required: false } 能有效解决问题。Element UI的表单校验机制在遇到空数组时,会认为该字段无需校验,从而避免了因数据回显延迟造成的校验规则错乱。这是一个简单而有效的解决方案。










