wh1246935943 2018-04-22 15:56 采纳率: 20%
浏览 4240
已结题

vuejs的watch钩子函数监听一个对象,在对象被直接赋值后无法去监听。看我详细描述。

我监听了data中定义好的info对象,这是一个包含登录信息的对象,
每当我启动程序后,都会拉取本地数据库的历史登录信息,当有登录历史时,
我做了如下操作:

this.info = resp.infos[0](resp.infos[0]的结构和this.info一致,包含的字段都一样),

这个时候我监听这个info时,watch不执行,但是当我注释调这个赋值的代码后,wathc监听正常,之后我做了一个笨办法,就是分别给this.info中的字段赋值,

如:this.info.account = resp.info[0].account,

这样的处理后watch监听正常。
这个问题怎么解决,我不想逐条赋值,因为的info这个对象中有十二个字段,那样做感觉很难看。

  • 写回答

4条回答 默认 最新

  • 默默悟问 2018-04-22 16:12
    关注

    this.info = resp.infos[0]
    赋值后是对象被替换,watch的对象被释放了,当然不生效。要么赋值后你重置watch操作,要么你就只能替换info里的内容,不能把info本身替换掉。

    评论

报告相同问题?