在我的应用中,我需要在组件层次结构中不同位置的众多组件中引用当前已登录的User
。
这意味着我经常在我的fragment
容器中使用这样的Relay
:
fragments: {
//...
currentUser: () => Relay.QL`
fragment on User {
id
userName
}
}`
为了避免重复自己,我倾向于将import
这个片段放入我需要的任何容器中(同样适用于其他无处不在的片段)。中继文档称之为inline fragments
:
var userFrag = () => Relay.QL`
fragment on User {
id
userName
}`
然而,the Relay docs have this warning:
请注意,强烈建议Relay.Containers定义他们的 拥有片段并避免共享内联var fragment = Relay.QL ... 容器或文件之间的值。如果你发现自己想要 分享内联片段,这可能是重构的时候了 并引入一个新容器。
这让我感到困惑有几个原因:
Component
容器中包装需要User
的任何Relay
?这似乎违反直觉,并且像太多样板。那么分享片段的方式是否不那么令人讨厌?还是我误读了文档的警告?