【发布时间】:2020-05-16 02:42:43
【问题描述】:
我在 firebase、帖子和用户中有 2 个文档,在帖子表中我有一个 uid,我在帖子文档中的 uid 的帮助下从用户文档中获取“头像”字段,请参阅代码:
fetchAvatar(uid){
var avatar;
this.$db.collection("users")
.doc(uid)
.get().then(snapshot => {
avatar = snapshot.data().avatar
});
return avatar;
}
<q-list
class="rounded-borders q-mt-md q-mb-md"
v-for="(post, key) in posts"
:key="post.key"
>
<div v-if="key == 0" v-scroll-fire="(new_group = false)"></div>
<PostDisplay
:key="key"
:type="post.type"
:avatar="fetchAvatar(post.uid)" // Calling function there
:more="post.more"
:name="post.owner"
:group="post.group_name"
:timestamp="post.created_at"
:likeCount="post.likes.length"
:commentCount="post.comments.length"
:comments="post.comments"
:text="post.text"
doc="posts"
:id="post.id"
class="dropshadow"
:media-urls="post.mediaUrls"
:post="post"
/>
</q-list>
我需要一个适当的解决方案来解决这个错误,我非常感谢给我正确答案的人。
【问题讨论】:
-
当您在循环中有相同的键时会出现此错误。所以为此只需在循环内使用不同的键
-
我将 post.key 编辑为 post.uid 但这不是关键问题,我搜索并阅读了许多博客/网络/帖子,如果循环中的数据发生更改,Vue.js 会重新渲染循环,所以我正在寻找一种通过 post.uid 为每个帖子获取头像的方法,你有什么解决方案吗?
标签: javascript vuejs2 infinite-loop