当前位置:   article > 正文

Vue3 element-plus el-select 无法选中,又不报错_vue3 使用element plus 选择器无法点击

vue3 使用element plus 选择器无法点击
  1. html 结构
<el-form :model="conditionForm"
   ref="conditionForm"
   label-width="100px" class="demo-ruleForm">
 	<el-select
         v-model="conditionForm.personnel"
         multiple
         placeholder="Select"
         style="width: 240px"
       >
        <el-option
          v-for="item in arr"
          :key="item.value"
          :label="item.label"
          :value="item.value"
        />
    </el-select>
</el-form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  1. js 代码
<script setup>
import { reactive } from 'vue';
let conditionForm = reactive({
  personnel: [], // 人员
})
let arr = reactive([
  {
    label: '测试',
    value: '1'
  },
  {
    label: '测试1',
    value: '2'
  }
])
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  1. 点击下拉选项,输入框无法选中
    在这里插入图片描述
  2. 原因:ref=“conditionForm” 和 :model=“conditionForm” 冲突了,
    4-1. 再Vue2里面
    :model=“conditionForm” 绑定的是 conditionForm 变量,
    ref=“conditionForm” 绑定的是conditionForm字符串
    v-model=“conditionForm.personnel” 绑定的 conditionForm 变量下属性 personnel

4-2 再Vue3里面
:model=“conditionForm” 绑定的是 conditionForm 变量,
ref=“conditionForm” 绑定的是conditionForm 变量
v-model=“conditionForm.personnel” 绑定的 conditionForm变量下的personnel属性
再选中项时候,我们是把选中的值 赋给 conditionForm.personnel 属性 ,因为这里form 和ref 都绑定了 conditionForm,vue3 底层再回写的时候 ,调用conditionForm变量时, 到底指的是 form表单 还是指的 ref 呢? 系统无法判断,所以也无法赋值

  1. 解决方案: ref 和 v-model 绑定,变量名错开使用 ,
    ref =“conditionForm1”, v-model=“conditionForm.personnel”
<el-form :model="conditionForm"
       ref="conditionForm1"
       label-width="100px" class="demo-ruleForm">
       <el-select
          v-model="conditionForm.personnel"
          multiple
          placeholder="Select"
          style="width: 240px"
        >
        <el-option
          @change="personnelChange"
          v-for="item in arr"
          :key="item.value"
          :label="item.label"
          :value="item.value"
        />
    </el-select>
</el-form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  1. 总结
    6-1 不要把Vue2 form表单的绑定数据的思维,想当然的用在Vue3中
    6-2 再Vue3 中 ref 绑定 和 v-model 绑定 都是绑定的变量 ,同时使用时,使用不同的命名错开,避免下拉框无法赋值
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/114274?site
推荐阅读
相关标签
  

闽ICP备14008679号