当前位置 : 主页 > 网络编程 > JavaScript >

关于element-ui resetFields重置方法无效问题及解决

来源:互联网 收集:自由互联 发布时间:2023-02-08
目录 element-ui resetFields重置方法无效 情况1.el-form-item没有加上prop属性 情况2.在mounted之前给表单赋值(mounted DOM未挂载完成) 解决办法 element-ui表单重置函数resetFields();使用注意事项 ele
目录
  • element-ui resetFields重置方法无效
    • 情况1.el-form-item没有加上prop属性
    • 情况2.在mounted之前给表单赋值(mounted DOM未挂载完成)
    • 解决办法
  • element-ui表单重置函数resetFields();使用注意事项

    element-ui resetFields重置方法无效

    目前发现resetFields(),有以下两种情况可能会导致失效:

    情况1.el-form-item没有加上prop属性

    需要重置的表单项el-form-item必须要加上prop属性,并且prop属性的值必须和数据双向绑定的值最后面保持一致

    element-ui 提供的文档如图: 

    图例如下:

    情况2.在mounted之前给表单赋值(mounted DOM未挂载完成)

    在mounted之前赋值会被当成是初始值,而resetFields方法是将值重置为初始值而不是清空。所以导致没有清空数据。

    解决办法

    法一:表单在mounted再赋值

    法二:使用this.$nextTick(() => { // 这里开始赋值 this.form.xx = xx; })

    element-ui表单重置函数resetFields();使用注意事项

    在表单重置的时候我们习惯使用this.$refs[formName].resetFields();来重置表单,但有时候会出现重置不完全的情况,例如:

    表单绑定的变量:

    formData:{ id:null, name:null , age:null}

    表单html:

    <el-form ref="form" :model="formData" label-width="80px" size="mini">
       <el-form-item label="姓名"> <el-input v-model="formData.name"></el-input> </el-form-item>
       <el-form-item label="性别"> <el-input v-model="formData.age"></el-input> </el-form-item>
    </el-form>

    当我们在编辑的时候会从后台返回数据回填formData(有id),

    当我们使用 this.$refs[‘form’].resetFields();重置表单的时候,不能把id重置成null(因为表单html中没有引用id项,所以重置的时候不能把formData.id重置),如果要把id重置成null,这个时候就要手动重置formData.id

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持易盾网络。

    上一篇:react父组件调用子组件的方式汇总
    下一篇:没有了
    网友评论