第一次跳转 页面数据加载不全,需要刷新一下才会全部加载

来源:9-9 作业 完成文章详情页

背对疾风丶4349571

2022-04-25

老师您好,postdetail界面第一次进入的时候,数据展示不全,只是展示一部分,然后需要刷新一次数据才会全部展示。这是为啥呢
图1是刚进入的界面,下面的信息和user-profile里面的信息都没有展示。
图片描述

刷新之后就成功展示全了。
图片描述

下面是仓库链接,麻烦老师了!!
https://git.imooc.com/xiaoshayu123/zhihuvite/src/master

写回答

1回答

张轩

2022-04-25

同学你好

原因在于你的 mutations 当中,直接将对应的条目插入了进去

fetchCurrentPost(state,rawdata){
   state.Posts.push(rawdata.data)
},

但是还记得我们在专栏详情页加载过对应的文章列表嘛?这条是在文章列表中的

所以现在 store 中有两个相同的记录,一个是简化的,一个是复杂的(有各种详细信息的)

[{id: 1, 我是简单的}, ...., { id: 1, 我是复杂的,刚插入的}]

getter 是通过 id 寻找的,所以它自然是找到了第一条简单的,那些详细信息就没有了。

直接刷新的时候,没有加载文章列表,这时候store 中只有一条。

[{ id: 1, 我是复杂的,刚插入的}]

所以就没问题了。

现在的修改是,直接覆盖对应的 store

+    fetchCurrentPost(state, rawData) {
    
+      state.Posts = [rawData.data]
    
+    },

就可以了。

当然我们后面还会针对这里进行优化,争取缓存数据,不多次加载,请慢慢看下去吧

1
1
背对疾风丶4349571
谢谢老师,这个逻辑问题不应该犯,写代码的时候脑子不太清晰,后面我会多复习多思考,再次谢谢老师!
2022-04-25
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程