vue用element-ui form表单做线条编辑的时候(画流程图ABCD分组的线条),由于线条是可以有多个选择多选的,用了 checkbox,但传递到接口的时候是用‘,’分割的字符串,这样就导致在页面上显示用到的值和实际存储使用的值不一致,这个控件是根据状态判断的,async-validator 验证用的prop用的一个,就是实际存储的值,而checkbox的v-model是新定义了一个数组,选中,取消选中没什么问题,但验证的状态不符,往往是已经一个都没选中了,却没有错误提示,从一个都没选中到选中一个反而有错误提示,感觉是验证的太快了,先做了验证,再执行的checkbox change事件,如果确实是这样,那在change事件改变了值后再去做一次验证应该就行了
翻了一下form-item的源码,找到了一个方法:onFieldChange,prop trigger changed就是执行的这个,于是定义了一个ref,在change事件将value改变后再调用一下 这个方法,果然可行。