当前位置: 首页 > 知识库问答 >
问题:

即使道具不变,如何观看道具?

裘禄
2023-03-14

我有一个和道具同名的守望者。道具是在某个事件的父组件中动态设置的。我需要一些东西,每次在父组件上触发事件时,都会用属性值触发子组件中的某个函数,即使它设置的属性相同。是否有任何观察者选项或其他处理此类案件的方法允许我这样做?

我尝试了什么(这是在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;
    }
}

共有1个答案

沈华晖
2023-03-14

您可以使用immediate选项:

watch:{
  yourProp:{
   handler(newval,oldVal){

   },
   immediate:true,
   deep:true //if the prop is an object or an array

 }

}

编辑

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

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
    }
},
 类似资料:
  • 虽然Vue Composition API RFC Reference site有许多高级使用场景,其中包括模块,但没有关于如何观看组件道具的示例? Vue Composition API RFC的主页或Github中的vuejs/Composition API中也没有提到它。 我创建了一个Codesandbox来详细说明这个问题。 编辑:虽然我的问题和代码示例最初使用的是JavaScript,但

  • 我是新来的反应,我又被卡住了。我试图映射我的数组,以在我的子组件中创建新的对象数组。这是我的问题——我的方法组件迪迪蒙特在数据来自父母道具之前被执行,我的状态保持为空。当我console.logingthis.props和组件的末尾,我收到空数组,但当我console.loging渲染方法它给我4个空数组,然后它填充到预期的300。我做错了什么? 父组件: 儿童部分:

  • 请求header GET /v1/activities/{频道id}/getAuth Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{频道id}"替换您需要获取的频道id 返回 { "status": "y", "ms

  • 使用RxJS如何在观察者上传递新属性?所以基本上我希望道具“customProp”可以被观察到 添加更多的信息-所以基本上,我试图创建一个冷可观察的,其中制片人需要一个道具,应该来自订户 添加用法信息--coldObservable是DB连接函数,customProp是需要在DB上执行的查询

  • 类型 备注 internal_mobile 国内手机 internal_pc 国内PC intranet_mobile 内网手机 intranet_pc 内网PC oversea_mobile 国外手机 oversea_pc 国外PC 获取定制列表 请求header GET /v1/activities/{频道id}/watchUrl Authorization:Bearer {ACCESS TO

  • 在角度分量的顶部有以下初始化。 在我的组件中的某个地方,我使用选择器对Ngrx存储进行以下调用,以获取可观测数据。所有这些都很好,我得到了我想要的数据。 我需要知道这个可观察的什么时候完成。我需要设置一个布尔值,当所有可观察到的数据都试图完成时,它将关闭加载指示器。这是通过Web服务完成的。 因为可观测的源来自其他地方,所以我无法挂起“完整”回调