Является ли это возможным? Можем ли мы использовать FragmentContainer
вне QueryRenderer? Чего я хочу добиться: у меня есть RefetchContainer
с SectionList
. Каждый элемент внутри каждого раздела представляет собой FragmentContainer
. Когда я выбираю элемент из раздела, я хочу открыть новый экран, на котором я отображаю FlatList
этих элементов. Данные, которые я передаю из SectionList
при выборе элемента, представляют собой список FragmentContainer
. Таким образом, я не вижу данные, поэтому мне нужно использовать для них фрагменты. Если я использую только фрагменты внутри FlatList
, я получаю отсутствующую среду из RelayFragmentContainer
. Поэтому я добавил QueryRenderer в качестве родителя для FlatList
, где я снова запрашиваю один и тот же раздел. Но это делает дополнительный запрос QueryRenderer
. Я хочу отобразить данные с предыдущего экрана. По крайней мере, я передаю этот список FragmentContainer
как cacheConfig и возвращаю его из метода fetchQuery
, но json отличается от ответа json, поэтому это не необработанные данные, а уже __fragments
, поэтому Relay
не может его проанализировать.
реле-современный FragmentContainer вне QueryRenderer
Ответы (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
person
Samuel
schedule
30.11.2017
О, спасибо ! Это не на 100% то, что я искал, но это служит цели больше, чем я ожидал достичь здесь! Большое спасибо!
- person parohy; 02.12.2017