vue 父组件向子组件传值,子组件watch props,console.log 触发两次

新手上路,请多包涵

父组件⬇
image.png

子组件⬇
image.png

子组件监听⬇
image.png

不知道哪里出现了问题

阅读 4.1k
4 个回答

原因是子组件监听的实际是父组件data对象的变化,只要父组件的data发生变化,就会触发子组件中的监听

解决方法:
父组件向子组件传值时

:params="{userId,
encryptPhone,
controlCustomerInfoDisplay}"`
//改成
:params="params"
//在data中定义
export default{
...,
data(){
    return:{
     params:{
        userId:"",
        encryptPhone:"",
        controlCustomerInfoDisplay:""
        }
    }
}
}```

请检查两个问题:

  1. 是否有两个子组件复用这个对象都在子组件进行监听
  2. 是否你的对象赋值的三个userid, encryptPhone,controlCustomerInfoDisplay的值多次覆盖或者不同地方赋值
  3. 想解决这个办法最好是用 parentParams = {} 来进行值传递
parentParams ={
    userid: '',
    encryptPhone: '',
    controlCustomerInfoDisplay: ''
}
新手上路,请多包涵

我也遇到这个问题了,你的解决了没?

  1. 三个值别拆分,合成一个变量,统一赋值试下
  2. 有路由切换?有的话检查下是否有重复初始化或未销毁
  3. 实在不行合成一个字符串,或加个防抖
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题