问题描述:在使用表单的对话框时,我在el-form中使用了v-if来移除校验(即重新渲染),可是发现在对话框消失的时候就没有那么丝滑!!

部分代码如下:

<el-dialog title="编辑'" :visible.sync="dialogVisiable" top="0" width="550px" class="el-dialog-wrapper">
      <el-form v-if="dialogVisiable" size="medium" ref="form" :rules="rules" :model="form" label-width="120px">
      ...

解决办法:

将el-form中的v-if去除即可。 然后想要对话框每次打开,移除校验结果,使用如下代码:

//在对话框打开方法中添加
setTimeout(()=>{
 this.$refs.form.clearValidate()
})

因为是elementUI对话框是异步显示的,可以看到visible.sync后面有个.sync,所以在写在setTimeout中。

Logo

前往低代码交流专区

更多推荐