繁体   English   中英

QueryRenderer外部的中继现代FragmentContainer

[英]relay-modern FragmentContainer outside QueryRenderer

可能吗? 我们可以在QueryRenderer之外使用FragmentContainer吗? 我想什么来实现的:我有一个RefetchContainerSectionList 每个部分中的每个项目都是一个FragmentContainer 当我从一个部分中选择一个项目时,我想打开一个新屏幕,在其中显示这些项目的FlatList 我从SectionList项的SectionList传递的数据是FragmentContainer的列表。 因此,我看不到数据,因此需要使用片段。 如果仅在FlatList使用片段, FlatListRelayFragmentContainer获取缺少的环境。 所以我增加了一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM