当前位置:   article > 正文

vue3+element Plus form 作为子组件,从父组件如何赋值?

vue3+element Plus form 作为子组件,从父组件如何赋值?

刚开始接触vue3时,碰到一个很low的问题,将form作为子组件,在页面中给form表单项输入内容,输入框不显示值,知道问题出在哪,但因为vue3组合式api不熟悉,不知从哪下手...

效果图:

父组件 index.vue 代码如下:

  1. <template>
  2. <div>
  3. <el-card>
  4. <template #header>
  5. <div>查询条件</div>
  6. </template>
  7. <!-- 内容 -->
  8. <search-form :form-data="formData"/>
  9. </el-card>
  10. <cn-pro-table />
  11. </div>
  12. </template>
  13. <script setup name="main">
  14. import { reactive } from 'vue';
  15. import searchForm from "./searchForm.vue";
  16. import cnProTablefrom "./cnProTable.vue";
  17. const formData = reactive({
  18. starTime: "",
  19. endTime: "",
  20. sys_short_name: "",
  21. bus_sys: ""
  22. })
  23. </script>

子组件 searchForm.vue代码如下:

  1. <template>
  2. <div>
  3. <el-form ref="formRef" :model="form">
  4. <el-row :gutter="24">
  5. <!-- 开始日期 -->
  6. <el-col :spam="6">
  7. <el-form-item label="开始日期" prop="starTime">
  8. <el-date-picker v-model="form.starTime" type="date" />
  9. </el-form-item>
  10. </el-col>
  11. <!-- 结束日期 -->
  12. <el-col :spam="6">
  13. <el-form-item label="结束日期" prop="endTime">
  14. <el-date-picker v-model="form.endTime" type="date" />
  15. </el-form-item>
  16. </el-col>
  17. </el-row>
  18. </el-form>
  19. </div>
  20. </template>
  21. <script setup name="searchForm">
  22. import { reactive } from 'vue';
  23. const props = defineProps({
  24. formData: {
  25. type: Object,
  26. default: () => {
  27. return {}
  28. }
  29. }
  30. })
  31. // 重点
  32. const form = reactive(props.formData)
  33. console.log("props=========", props)
  34. </script>

重点:const form = reactive(props.formData)

不可直接对组件的form直接进行更改,修改为接收的父组件值并赋值给子组件的form。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/300074
推荐阅读