现在好像是在for循环中修改对象的属性值,但是好像监听不到变化,只有把defaultData 初始为空才可以监听到。
// 父组件中触发值改变的地方
changeNext(selected = {}, toArea, field){
for(const key in field.nextFields){
nextFields.forEach((nextField)=>{
const {toArea, toField} = nextField;
this.$set(this.defaultData[toArea], toField, selected[key]);
})
}
}
// 子组件中
props: {
defaultData: {
type: Object,
}
},
watch: {
defaultData: {
handler: function (val, oldVal) {
console.log('new c: %s, old: %s', val, oldVal)
},
deep: true
},
}
deep: true 放的位置不对把

以下方式试一下: 或者使用$emit $on实现更改 immediate 足够了