当前位置: 首页 > 知识库问答 >
问题:

vue3 - Vue3.x+Element-Plus通过render函数创建表单ref的问题?

充子航
2023-04-20

代码:

<script>
import { defineComponent, ref, reactive, h, onMounted, nextTick } from 'vue'
import { ElForm } from 'element-plus'

export default defineComponent({
  components: {
    ElForm
  },
  setup () {
    const ruleFormRef = ref(null)
    const ruleForm = reactive({
    })

    const rules = reactive({
    })
    const handleClick = () => {
      // 表单校验
      console.log('ruleFormRef.value111:', ruleFormRef.value) //值为null
    }
    return {
      ruleFormRef,
      ruleForm,
      rules,
      handleClick
    }
  },
  render () {
    const btnChildren = <el-button onClick={this.handleClick}>提交</el-button>
    return h(ElForm, {
      ref: this.ruleFormRef,
      model: this.ruleForm,
      rules: this.rules,
      labelWidth: '120px',
      class: 'demo-ruleForm'
    }, [btnChildren])
  }
})
</script>

进行表单提交校验,打印出来的ruleFormRef.value的值为null。该怎么处理?

共有1个答案

慕容劲
2023-04-20

将代码改成这样就可以了


return h(ElForm, {
      ref: (el) => this.ruleFormRef = el,
      model: this.ruleForm,
      rules: this.rules,
      labelWidth: '120px',
      class: 'demo-ruleForm'
    }, [btnChildren])
 类似资料:
  • 下面这段代码来自于element-plus官网,有几点我不明白。 1.这里为什么用setTimeout?有必要吗?它是在失焦的时候才会触发验证 2.这里的ruleFormRef.value.validateField('checkPass')有必要吗?在失焦之后,checkpass字段不也会触发验证吗?如果设置change时校验,这还是有用的。 3.这里的rules有必要为响应式数据吗? 全部代码

  • 使用 vite 打包组件库,在新的项目中使用时报错 下面是打包后的产物 pe 和 dn 找不到导致项目启动时就报错, 手动再新起一个别名时会结局此问题 vite.config.ts 配置如下 请问这个问题该怎么解决

  • 请问各位大佬们 如何通过vue3+element-plus实现el-table的子列表懒加载???该如何实现点击左侧的箭头实现子节点的懒加载?不然数据多的情况下 会导致卡顿。求指教,谢谢!!! 这是后台返回的数据格式:

  • <el-checkbox v-model="checked" label="Option 1" size="large" /> 期望 checked 的值是 0 和 1(0 表示 true,1 表示 false)。 怎么绑定这个值呢? 尝试过: <el-checkbox :value="checked" label="Option 1" size="large" />

  • vue3 div 绑定 ref 正常是这样的: 这样的怎么不可以: