封装的form组件 调用时报错this.$refs[formName].validate 找不到是什么原因

新手上路,请多包涵

贴上代码:
html部分

   <mt-form-item label="姓名" :cc="24" prop="name">
            <el-input v-model="ruleForm.name"></el-input>
          </mt-form-item>
          <mt-form-item label="电话" prop="tel">
            <el-input v-model="ruleForm.tel"></el-input>
          </mt-form-item>
          <mt-form-item label="邮箱" prop="email">
            <el-input v-model="ruleForm.email"></el-input>
          </mt-form-item>
          <mt-button
            type="primary"
            icon="el-icon-success"
            label="保存"
            @click="submitForm('ruleForm')"
          ></mt-button>
          <mt-button type="primary" label="登录" @click="resetForm('ruleForm')"></mt-button>
        </mt-form>

js部分

 // 表单属性
    ruleForm: {
    name: '',
    tel: '',
    email: ''
      },

   rules: {
 name: [
 { required: true, message: '请输入活动名称', trigger: 'blur' },
 { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }],
   tel: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }],
  email: [
 { required: true, message: '请输入活动名称', trigger: 'blur' },
 { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }]
      }

报错内容:image.png

image.png

打印this.$refs[formName]可以打印出来,但是打印this.$refs[formName].validate 就是underfined,
这是什么原因呢?是我组件的原因还是我调用的问题

求大佬们帮忙

阅读 5.7k
4 个回答

你的form html代码没贴全吧。
检查一下form标签上是否有refrules的绑定

代码展示不全, 建议把官方demo复制运行一下, 查看代码是不是哪里写错了

封装的组件 有没有在子组件把实例返回给父组件

// 将form实例返回到父级


this.$emit('update:refObj', this.$refs.form)

this.$refs.ruleForm.validate();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题