赞
踩
在我们开发项目过程中,多数情况下回用到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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。