0

可能吗?我们可以FragmentContainer在 QueryRenderer 之外使用吗?我想要实现的目标:我有RefetchContainer一个SectionList. 每个部分中的每个项目都是一个FragmentContainer. 当我从一个部分中选择一个项目时,我想打开一个新屏幕,在其中显示FlatList这些项目中的一个。我从SectionListon item select 传递的数据是一个FragmentContainer. 因此我看不到数据,所以我需要使用片段。如果我只在 中使用片段,FlatList我会从RelayFragmentContainer. 所以我添加了一个 QueryRenderer 作为父级FlatList,我再次请求相同的单个部分。但这提出了一个额外的QueryRenderer要求。我想显示上一个屏幕的数据。至少我将这个列表FragmentContainer作为 cacheConfig 传递并从fetchQuery方法但是,json 与响应 json 不同,因此它不是原始数据,而是已经__fragments,因此Relay无法解析它。

4

1 回答 1

1

在这个问题中获得一些关于您的组件和片段是什么样子的代码示例会很好。也就是说,您可能想使用该@mask指令进行调查。

我从 Relay 文档中获取了一个示例,并将其包含在此处:

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

于 2017-11-30T22:05:22.947 回答