即使道具没有变化,如何观看



我有一个与道具同名的观察者。道具是在某个事件的父组件中动态设置的。每次在父组件上触发事件时,我都需要一些东西来触发子组件中的某个具有属性值的函数,即使它设置的道具是相同的。是否有任何观察者选项或其他方法可以让我这样做?

我尝试过的(这是在Post组件中(:

watch: {
replyClicked:
{
handler(newVal, oldVal)
{
console.log(newVal, oldVal);
},
immediate:true
}
},

console.log只在newVal与oldVal不同时打印,即使它们相同,我也需要一些函数来触发。父组件如下所示:

<RenderPost @onReply="onReply" />
<Post :replyClicked="replyClicked" />

这些是父数据和方法:

data()
{
return {
replyClicked : null
}
},
methods :
{
onReply(id)
{
this.replyClicked = id;
}
}

您可以使用immediate选项:

watch:{
yourProp:{
handler(newval,oldVal){
},
immediate:true,
deep:true //if the prop is an object or an array
}
}

编辑

由于旧值与新值相同,您可以尝试此解决方法,通过添加一个始终更改的字段将道具定义为对象:

data()
{
return {
replyClicked : {
changeCount:0,
id:null
}
}
},
methods :
{
onReply(id)
{
this.replyClicked ={id, changeCount:this.replyClicked.changeCount+1}
}
}

子组件:

watch: {
replyClicked:
{
handler(newVal, oldVal)
{
console.log(newVal, oldVal);
},
immediate:true,
deep:true
}
},

最新更新