vue文本输入框v-model双向绑定手动赋值后文本框中数据不实时显示的问题

在Vue项目中遇到v-model双向绑定对象属性时,手动赋值后文本框未实时显示新值。问题出现在给对象属性赋值后,文本框内容未更新。解决方案是利用Vue的$set方法来设置属性的值,确保视图同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中遇到一个问题,使用vue双向绑定对象的属性,但是手动给属性赋值后输入框中的数据不实时显示。
场景如下: 选择一条生产线后,自动按顺序生成一个新的库位码,并将新的库位码显示在文本框中,但是将新生成的库位码赋值给文本框时,文本框中并没有实时显示。

          <el-row :gutter="24">
            <el-col :span="24">
              <el-form-item prop="locationName" label="库位名称:">
                <el-input v-model="form.locationName" placeholder="请输入名称" style="width: 80%" clearable disabled />
              </el-form-item>
            </el-col>
          </el-row>

          <el-row :gutter="24">
            <el-col :span="24">
              <el-form-item prop="binLocationBarcode" label="库位码:">
                <el-input
                  v-model="form.binLocationBarcode"
                  placeholder="请输入库位码"
                  style="width: 80%"
                  clearable
                  disabled
                />
              </el-form-item>
            </el-col>
          </el-row>

手工赋值后,对象的值并没有实时显示在文本框中

// 手工给对象属性赋值,但是输入框中并没有实时显示,
// 而是进行了其他操作后才显示文本框中的赋值数据
  this.form.locationName = res.data.newBinLocationName
  this.form.binLocationBarcode = res.data.newBinLocationBarcode

解决方法:使用$set(object,“prop”,value)方法设置属性的值就显示了

this.$set(this.form, 'locationName', res.data.newBinLocationName)
this.$set(this.form, 'binLocationBarcode', res.data.newBinLocationBarcode)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值