所以,首先有點背景。 我是一位本機iOS/Android開發人員,現在開始我的第一個React Native項目。它帶來了Javascript的所有好處和痛苦,但到目前爲止,我非常喜歡它:-)我也決定也第一次嘗試使用GraphQL。QueryRenderer在繼電器現代中的角色?
作爲React環境中的新手,我也沒有任何關於Relay的知識,但是在我的創業社區的朋友和我的web-dev同事的推薦中選擇了它。我也被告知學習曲線有些陡峭,但決定繼續前進 - 我已經與JS和一個0.xx版本的新移動平臺進行了艱苦的鬥爭,所以到底什麼是對的? :-)我設法通過我的GQL服務器正確設置我的項目和衝壓整體帶QueryRenderer
,這是一個極大的安慰:-)
因此,在對問題
我很難找出容器/組件的關係,以及容器的組成。閱讀the docs on composition幫助,但我仍然懷疑過的QueryRenderer
QueryRenderer
的角色由文檔據說是每一個接力樹的根容器。這是否意味着我們應用程序中的根應該有QueryRenderer
?或者在每個導航路徑的根目錄下(即我們應用程序中的選項卡)?或者只是針對每個容器組件(與表示/啞/純組件相反,React明智)?請注意,我不是在尋找意見,而是最佳實踐的論點:-)FragmentContainer
(或其他任何容器,就此而言)在「父」組件中的作業沒有QueryRenderer
?QueryRenderer
如何鏈接到子容器?它是否獲取子容器所需的所有數據的總和,然後從高速緩存中讀取子容器,或者?如果是這樣,我誤解了Relay的優點 - 我們覺得每個組件都可以獨立於每個其他組件獲取數據,並且每個組件都不知道其他組件的數據需求(包括父/子組件)。我認爲這個假設也令我對QueryRenderer
感到困惑,並且需要一個「根」容器。- 如果
QueryRenderer
是中繼樹的「父」/「根」中繼容器,它如何根據請求呈現視圖組件?爲什麼它必須有一個請求?什麼時候應該使用QueryRenderer
?
任何幫助深表感謝:-)
如果有足夠多的人滿意答案,我將最終將其標記爲「已接受」,以便將來訪問此帖的任何人。我會等待,看看其他人是否同意我們的策略,但:-) – jhm
是不是中繼足夠聰明,只有當組件呈現時才能獲取片段的數據?例如,你可能有一個帶有片段的根查詢... User_friends;我相信只有當使用它的組件呈現時,Relay纔會獲取這些片段的數據。如果我錯了,請糾正我 –
回覆我自己,我剛剛在父QueryRenderer中嘗試過一個子fragmentContainer,實際上,QueryRenderer爲子fragmentContainer提取數據,即使當孩子甚至還沒有呈現時。無論如何,我將不得不提出兩個答案,因爲實際上取決於具體情況=) –