vue 对象更新,视图不更新的问题

应用场景:
image

    list:[],
    detail:{}


如图list里有3条列表数据,接口中获取,当点击某一条时,
我根据index, 赋值给detail,

detail会显示一个弹窗,显示改条详情信息

代码:
当点击时:
this.detail = this.list[index]

反复点,视图就不会更新了,使用显示一样的内容
但console.log里detail每次都不同

阅读 5.2k
8 个回答

只要把官网的这一章节看懂,最少有3种以上的方法让视图更新
image

chrome装个 Vue debug插件,看看传入detail控件 props的值有没有变化。
detail控件里写watch,immediate:true看看有没有被调用。
你还是要上代码~否则说不清楚。

很有可能是 弹窗 组件没有更新,可以尝试给 弹窗 组件容器添加 key ,每次点击的时候更新 key

在组件里面watch下

一般没有深拷贝

  1. 关闭弹窗的时候记得清空弹窗组件的数据
  2. 官方的深入响应式文档,可以看看是不是问题在那,我也遇到过几次数据更新,视图没有更新的情况,就是检查这个解决的

看下是不是用index作为key了,如果是的话,换成id

可以试一下Vue的$set方法,可以参考一下 这里

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