2017-04-10 69 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和跟蹤的對象之間的引用。

當組件請求這些對象將需要從扁平結構的對象和其建成請求的格式。