2017-04-10 48 views
0

redux具有“单一真相源”的原则,并且我很难判断GQL中的轮询片段如何继续遵循此原则。Apollo真相单一来源

TL; DR:阿波罗是否为整个应用程序或每个阿波罗容器规范实体?

阿波罗有他自己的redux商店。 通过体系结构图,我看到在将数据应用到redux之前存在规范化阶段。

我的问题是:让我说我有一个后架构和用户架构。 查询帖子时,我拉取帖子信息,还有作者(用户架构)名称和个人资料图片。 我有一个帖子容器与阿波罗。 所以我猜阿波罗店现在有这种状态:

{ 
    posts: { 
    512 : { 
     title: "title" 
     content: "big content" 
     author: [32] 
    } 
    }, 

    users: { 
    32 : { 
     name: "James" 
     profilePic: "YYYYYY" 
    } 
    } 
} 

,但会发生什么,当用户 - 詹姆斯,改变他的名字朱利安,与其他成分,频繁更新聊天菜单组件将有用户名:32,名字不同,Julian。
是否会因为此更新帖子容器? 或它将继续显示过时的数据?

回答

0

伟大的问题!

你的答案可以在这里找到:http://dev.apollodata.com/core/how-it-works.html#normalize

要在案件总结链路断开:

apollo-client不存储的东西,你在提出申请的方式,而是作为一个平面结构(和产生基于id__typename该对象的ID和跟踪的对象之间的引用。

当组件请求这些对象将需要从扁平结构的对象和其建成请求的格式。