vue组件刷新但是部分区域不刷新的问题

目前在做一个聊天APP的项目,左右都是组件,左边是聊天群,右边是聊天分享内容,下面有截图

左:clipboard.png

右:
clipboard.png

无论怎么点击左边都是会在同一个路由下,左边通过请求后台拿到每个聊天群的信息,点击选择时通过vuex保存起来
然后右边聊天组件能取到,正常情况下都是可以正常的。点击群,右边就进入updated()钩子。
目前在做一个点赞的需求,问题就来了,我在某一个群的某一个消息中点赞了一次(比如说在第二条),然后我进入别的聊天群里面对应的item下已赞,虽然我没有给它点赞。

对应的没有点赞却有已赞的项:

clipboard.png

我通过vue-Devtools看了下相关vuex的item是正常的,不知道为何会继承这个已赞,刷新页面就好了,不过仅仅切换群就还是已赞

关于点赞的逻辑代码:

       <div class="downLoad" v-if='item.fileLists'>
           <div class="signDownload" v-show='!(idx === index)'><span v-if='item.fileLists.length > 1' @click='downloadMore(index)'>批量下载</span><span v-else><a :data-id='item.fileLists[0].fileId' @click='sigelDownLoad'>下载</a>
           </span><span @click='clickLike(item, index, $event)'>{{feedLikeClick(item.feeds)}}</span><span @click='wantCommit(index)'>发表评论</span></div>
           <div class="quitDownload" v-show='idx === index'>
               <span class="checkFileNeed">请勾选你要下载的文件</span><span v-show= false>已选择了 个文件,共 M</span><span class="rightNow">立即下载</span><span class="quitButton" @click='quitDownload'>取消</span>
           </div>
           <feed :feeds='item.feeds' ref='feeds' :feedNeed='{"shareId": item.shareId, "index": index}'></feed>
       </div>
       
           feedLikeClick(obj) {
  if (obj.length !== 0) {
    let like = ''
    for (let item of obj.values()) {
      if (item.feedType === 1 && item.userId === userId()) {
        like = '已赞'
        break
      } else {
        like = '点赞'
      }
    }
    return like
  } else {
    return '点赞'
  }
}
阅读 10k
2 个回答

大致看懂了,感觉是后端的问题。你看看在另外一个群里面的接口中返回的是否点赞的字段是什么,如果接口是没有点赞,但是前端是已点赞,可能是你复用的模板中点赞没有更新,如果是这样的话,可以在聊天信息的模板中监听一下路由的改变,重新刷新一下组件。但是还是感觉是后端的问题

话说 来个朋友回答一下

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