2026-10-24 18:54:16
在Element UI表单动态校验中,数据延迟导致的校验规则闪烁问题可通过将不需要校验时的rules数组置空(设为[])来解决,而非仅设置required: false。 以下是具体分析与解决方案:
问题根源条件propertyInfo.propertyCategory == 1 && !isCutomadded && showEstAdressbui && editNewDataRule为真时,应用rules.buildingNameWithCulture;
条件为假时,若仅设置required: false,Element UI仍会保留字段的校验框架,导致规则切换时渲染冲突。
关键修改:将不需要校验时的rules绑定值从{required: false}改为空数组[],彻底移除校验规则。
原代码问题:
:rules="propertyInfo.propertyCategory == 1 && !isCutomadded && showEstAdressbui && editNewDataRule ? rules.buildingNameWithCulture : {required: false}"当条件为假时,字段仍保留required: false的校验配置,Element UI会尝试渲染空校验规则,引发闪烁。
优化后代码:
:rules="propertyInfo.propertyCategory == 1 && !isCutomadded && showEstAdressbui && editNewDataRule ? rules.buildingNameWithCulture : []"当条件为假时,字段的rules为空数组,Element UI不再渲染任何校验规则,避免渲染冲突。
模拟慢接口场景,观察字段校验规则是否稳定。
确保条件切换时(如isCutomadded从false变为true),规则不再闪烁。
通过上述方法,可有效解决因数据延迟导致的动态校验规则闪烁问题,提升用户体验。