Element-Ui中el-select选择后无法选中

在Vue项目中使用element-ui的select组件时,可能会遇到选择器无法实时更新的问题。原因是Vue无法检测到对象属性的动态添加。解决办法是在change事件中调用$forceUpdate()强制更新视图,确保选择的变化能正确反映在界面上。
摘要由CSDN通过智能技术生成

在我们开发项目过程中,多数情况下回用到element-ui中的select选择器,在开发过程中,会遇到这种情况,

我们渲染完数据之后,el-select默认显示第一次选择的项,当我们切换后选择器并不能实时更新。

<el-select v-model="form.tenantId" placeholder="请选择渠道客户">
     <el-option
        :label="item.shortName"
        :value="item.tenantId"
       v-for="(item, index) in customerListInfo"
       :key="index"
      ></el-option>
</el-select>
 //所属客户列表
    getCustomerListFn() {
      customerListApi().then((res) => {
        this.customerListInfo = res.data;
      });
    },

vue.js官网给出这样一个结论:

受javascript的限制,vue不能检测到对象属性的添加或删除。由于Vue会在初始化实例时对属性执行getter/setter转换过程,所以属性必须在data中存在才能让vue转换它,这样才是响应式的,

具体来说就是在首次初始化之后,vue不会在进行加载渲染了,需要我们手动去执行渲染方法去重新加载它。

解决方案:使用Vue.js官方提供的vm.$forceUpdate()方法,该方法作用是迫使Vue实例重新渲染。

             <el-form-item label="所属客户列表:" label-width="120px">
              <el-select v-model="form.tenantId" placeholder="请选择客户列表"         
                @change="$forceUpdate()">
                <el-option
                  :label="item.shortName"
                  :value="item.tenantId"
                  v-for="(item, index) in customerListInfo"
                  :key="index"
                ></el-option>
              </el-select>
            </el-form-item>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值