vue watch不触发的一个小问题

34678
  • 61

场景:
需要在子组件b监听父组件A的数据info的变化(PROP传给B了)
问题:
b监听info.amount属性
a修改info.amount 不触发b的watch
但是加上一个deep:true之后就行了~~a改变info.amount就能触发b的watch函数了
whywhywhy~~没想明白 因为我不是直接监听info对象
code:
父组件----会在异步请求里面修改传给子组件的数据
data()里面的定义

//这个就是传给子组件的整个info对象
            publicLimitInfo: {
                statusText: '',
                status: -1,
                statusColor: '',
                amount:''
            },
//父组件里面对子组件的使用
        shareDetailDialog( :info="publicLimitInfo")

子组件

    watch:{
        "info.amount":{
            immediate:true,
            deep: true,
            handler:function(val){
            // 这样会触发
            }
        }
    },
回复
阅读 4.3k
1 个回答

写法问题吧
这样写

'info.amount' (val) {
   ...
}

这样写

info: {
            immediate:true,
            deep: true,
            handler:function(val){
            // 这样会触发
            }
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏