javascript - vuejs boolean props watch 不会触发
问题描述
我正在开发一个 vue cli 项目,其中项目有两个状态装备和未装备。
该状态由位于 Props 中的布尔值控制。既然你可以切换状态我不得不创建一个数据isEquipped默认设置为false。
然后我添加了一个观察者,但如果我的道具设置为 True,它不会改变我的数据值。
这是代码
name: "Item",
props: {
Index : Number,
name: String,
desc : String,
bonus: Array,
equipped : Boolean
},
data() {
return {
isEquipped : false
}
},
watch: {
equipped: function(stateEquipped) {
this.isEquipped = stateEquipped;
},
},
因此,例如,假设我创建了一个新项目,并将装备设置为 True,观察者不会触发并且 isEquipped 停留在 False,有什么理由吗?
我遇到了多个类似的问题,例如Vue @Watch 没有触发布尔更改,但没有一个对我有帮助
解决方案
如果您想使用手表,那么您可以尝试将其定义为:
equipped: {
handler () {
this.isEquipped = !this.isEquipped;
},
immediate: true
}
this.isEquipped
每当装备的值发生变化时,这将改变值。
推荐阅读
- python - 图卷积网络中的 RuntimeError
- java - 在 MediaStore 中分离来自 SD 卡和设备内部存储器的图像
- ios - Firebase 消息 - 将更新的令牌发送到 Firebase
- python - Flask 自定义 ValidationError 不会显示错误
- r - 使用 mutate 创建新变量,其中列有一个基于 tidy tibble 中的条件的变量
- python - 如何创建 bash 脚本以在 python-behave 中执行非无头自动化
- python - 使用 .assign() 和字典理解来创建一列的多个滞后
- batch-file - 有没有办法创建一个 .bat 将随机文件从一个目录复制到另一个在 txt 中写入文件名?
- java - Angular不显示从http响应收到的数据
- r - 如何迭代地将列传递给R中的函数