javascript - 与 watch 一起使用时,Vue JS v-model 数据不会更新
问题描述
这是我的代码
data() {
return {
crop_mode: 'portrait',
widget_data:''
}
},
watch: {
widget_data: function (val) {
this.crop_mode = val.crop_mode
},
},
此代码位于模态组件内。因此,每当打开模式时,“widget_data”就会发生变化。这个widget_data有一个“crop_mode”,需要分配给数据变量“crop_mode”
如果我 console.log val.crop_mode 这很好用,但是当我像下面那样在crop_mode 上执行 v-model 时,它不会更新选中的单选按钮。
<label class="custom-radio block">
<input
type="radio"
value="portrait"
name="crop_mode"
v-model="crop_mode"
/>
<span>Portrait</span>
</label>
<label class="custom-radio block">
<input
type="radio"
value="landscape"
name="crop_mode"
v-model="crop_mode"
/>
<span>Landscape</span>
</label>
<label class="custom-radio block">
<input
type="radio"
value="square"
name="crop_mode"
v-model="crop_mode"
/>
<span>Square</span>
</label>
解决方案
您应该添加deep:true
选项,因为它看起来像是widget_data
一个具有嵌套值的对象:
watch: {
widget_data:{
handler(val) {
this.crop_mode = val.crop_mode
},
deep:true
}
},
推荐阅读
- javascript - 如何使用 antd 为反应应用程序创建多复选框
- amazon-web-services - 撤销所有用户的所有刷新令牌。认知
- python - 熊猫:如何重命名一列但不丢失熊猫以前的文本?
- java - 如何使用 DateTimeFormatter 转换字符串以获取 java.sql.Timestamp
- angular - 将特定领域的服务作为 Angular 通用服务的一部分使用的推荐方法是什么?
- ios - 这里适用于 iOS 的 SDK lite 包含不受支持的文件
- impala - 在 impala 中查找已用内存的百分比
- clickjacking - 如何设置内容安全策略的“框架祖先”指令
- sql - Where 子句在 Bigquery 的分区表中不起作用
- database - 19c 和 11g 版本上的 Oracle 内存泄漏问题