vue watch深度监听一个对象时,怎么把监听到的newvalue赋值给data里的变量?

pageData是一个对象,从父辈传过来的,我在子组件里面通过props接收到pageData,想要用watch监听到pageData对象里的属性有变化,然后赋值给newpageData。

但是普通的监听pageData,根本都不会触发。改成深度监听之后。 console.log(newval)是能监听到pageData的最新值的。然后我想要赋值给 this.newpageData就报错了。

**Error in callback for watcher 'pageData'
newpageData is not defined**

请问有什么办法可以解决?

props:['pageData'],
data(){
    return{
       newpageData:null
    }
},
  watch:{
       pageData:{
                handler: function (newval, oldVal) {
                    console.log(newval)
                    this.newpageData=newval;
                },
                deep: true
            }
        }    
阅读 14.3k
1 个回答

检查一下this指向

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题