redux 具有“单一事实来源”的原则,我很难弄清楚来自 GQL 的轮询片段将如何继续保持这一原则。
TL;DR : apollo 是否对整个应用程序或每个 apollo 容器的实体进行规范化?
Apollo 有自己的 redux 商店。通过架构图,我看到在将数据应用到 redux 之前有一个规范化阶段。
我的问题是:假设我有一个帖子模式和一个用户模式。轮询帖子时,我会提取帖子信息,以及作者(用户模式)名称和个人资料图片。我有一个带有阿波罗的帖子容器。所以我猜阿波罗商店现在有这个状态:
{
posts: {
512 : {
title: "title"
content: "big content"
author: [32]
}
},
users: {
32 : {
name: "James"
profilePic: "YYYYYY"
}
}
}
但是当用户 - James 将他的名字更改为 Julian 和另一个组件时会发生什么,经常更新的聊天菜单组件将具有用户 ID:32 和不同的名字 Julian。
帖子容器也会因此而更新吗?还是会继续显示过时的数据?