vue对select下拉框赋初值后,不能进行选择的问题

Vue使用elementUI的select选择器出现的问题:

     初始化赋值后,无法更改label值,数据已经改变,但UI样式为未变

原因:由于对此对象做了一些处理(将对象的键全部转换成小写),改变了对象的键和值,但是由于Vue检测不到对象的变化,导致这个问题

解决方案:使用Vm.$set方法,详情见api官方文档

 具体代码如下:

HTML部分

<el-form-item label="Server Area" prop="area">

<el-select v-model="reqData.area" placeholder="all">

<el-option v-for="(item,index) in area" :key="index" :value-key="index" :label="item" :value="item">

</el-option>

</el-select>

</el-form-item>

js部分

async getdata() {

let res = await this.$http.get(

`${api.server}?serverid=${this.$route.query.id}`

);

this.reqData = res.Data.status[0];

this.reqData.area="zh"

let data = {};

for (let key in this.reqData) {

this.reqData[key.toLowerCase()] = this.reqData[key];

if(key!="Area"){

delete this.reqData[key];

}

}

this.$set(this.reqData,"area",this.reqData.Area);

delete this.reqData.Area;

},

 

      

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,当使用v-model动态渲染select下拉框时,可能会遇到下拉框显示为空白的问题。这是因为select标签必须要有一个才能正常显示,而默认情况下v-model绑定的变量是没有的。因此,需要给v-model绑定的变量一个初始,例如将select的初始设置为空字符串。\[2\] 另外,还有两种解决方法可以解决这个问题。第一种方法是使用Vue的$set方法来为动态新增的属性赋值。在change事件中,可以使用this.$set来为inquire对象的selectData属性赋值,这样可以实现select下拉框选择赋值成功并显示选中的。\[3\] 第二种方法是使用forceUpdate方法来强制刷新render函数。如果下拉框的数据是从其他接口获取的,并且数据层次较深,render函数可能无法自动更新,需要手动强制刷新。在select的change事件中,可以加上this.$forceUpdate()来强制刷新,这样就可以解决选中不显示的问题。需要注意的是,forceUpdate只会影响实例本身和插入插槽的子组件,而不是所有子组件。\[3\] 综上所述,解决Vue隐藏select下拉框问题可以通过给v-model绑定的变量初始,使用$set方法为动态新增的属性赋值,或者使用forceUpdate方法强制刷新render函数。 #### 引用[.reference_title] - *1* *2* [(详解)Vue设置select下拉框的默认选项(解决select空白的bug)](https://blog.csdn.net/Andye11/article/details/126933085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue中el-select下拉框 选择赋值成功 但是下拉选框上不显示选中的的解决办法](https://blog.csdn.net/weixin_44900104/article/details/126348729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值