[英]relay-modern FragmentContainer outside QueryRenderer
可能吗? 我们可以在QueryRenderer之外使用FragmentContainer
吗? 我想什么来实现的:我有一个RefetchContainer
与SectionList
。 每个部分中的每个项目都是一个FragmentContainer
。 当我从一个部分中选择一个项目时,我想打开一个新屏幕,在其中显示这些项目的FlatList
。 我从SectionList
项的SectionList
传递的数据是FragmentContainer
的列表。 因此,我看不到数据,因此需要使用片段。 如果仅在FlatList
使用片段, FlatList
从RelayFragmentContainer
获取缺少的环境。 所以我增加了一个QueryRenderer作为父母的FlatList
,我再次请求相同的单节。 但这会产生一个额外的QueryRenderer
请求。 我想显示上一个屏幕中的数据。 至少我将此FragmentContainer
列表作为fetchQuery
传递,并从fetchQuery
方法返回它,但是json与响应json不同,因此它不是原始数据,但已经是__fragments
,因此Relay
无法对其进行解析。
在这个问题中获得一些代码示例,以了解您的组件和片段是什么样子是很好的。 也就是说,您可能想使用@mask
指令进行调查。
我从中继文档中获取了一个示例,并将其包含在此处:
module.exports = createFragmentContainer(
({ user }) => ...,
graphql`
fragment Component_user on User {
internUser {
manager {
...Component_internUser @relay(mask: false)
}
.... on Employee {
admins {
...Component_internUser @relay(mask: false)
}
reports {
...Component_internUser @relay(mask: false)
}
}
}
}
fragment Component_internUser on InternUser {
id
name
}
`,
);
通过使用@mask
,片段中包含的数据将在承载该片段的组件中可用。 关于此的中继文档可在以下位置找到: https : //facebook.github.io/relay/docs/relay-directives.html#relay-mask-boolean
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.