【发布时间】:2019-09-05 17:27:09
【问题描述】:
我有一个将对象传递给子对象的父组件,并且该子组件具有依赖于对象属性的计算属性。
我可以看到,当我更新父级中的 prop 对象时,该 prop 在子级中更新,但计算属性仅在加载时计算一次,然后从不重新计算,即使我使用 ',观察者也是如此deep',计算属性或监视对象永远不会被触发。
这是一个代码示例(假设 orderData 只是一些对象)
订单数据
{'test': 5}
父母
OrderForm(
:orderData='orderData'
)
孩子
computed: {
orderJson() {
console.log('computed')
return JSON.stringify(this.orderData)
}
},
props: ['orderData']
我也试过
watch: {
orderData: {
handler(val, oldval) {
console.log('hanlded')
this.orderJson = JSON.stringify(val)
},
deep: true
}
}
在这两种情况下,我都没有在我的 vue 检查器中看到对 orderJson 的更新,有什么想法吗?
【问题讨论】:
-
你在模板中使用
orderJson吗?它仅在您在某处使用时更新计算 -
另外你的第二次尝试也行不通。 是可以为计算的 props 赋值,但前提是你这样声明它们:vuejs.org/v2/guide/computed.html#Computed-Setter
-
抱歉,我没有包含完整的代码,但使用了计算属性
标签: vue.js