需求及問題
當某些意料之外的操作後,提示信息會一直保留到提交表單後纔會清空消失。實際上數據是正確的但是校驗提示信息卻沒有消失。
底層原因還是數據的雙向響應問題,數據改變了但是監聽事件沒被觸發,導致dom沒有被重新渲染。
解決方案
/**
* 單項校驗信息重置
*
* @param {String} refName 要觸發的表單ref名字
* @param {String} propName 要清除的表單屬性名字
*/
validateField(refName, propName){
this.$nextTick(() => {
this.$refs[refName].validateField(propName, (valid) => {
if (!valid) return;
})
})
}