Допустим, у меня есть запрос верхнего уровня и подкомпонент со следующим фрагментом:
export const HomePageQuery = graphql`
query HomePageQuery {
viewer {
...SubComponent_viewer
}
}
`
// then a sub-component with
const SubComponentWithFragment = createFragmentContainer(SubComponent, {
viewer: graphql`
fragment SubComponent_viewer on Viewer {
me {
someImportantValue
}
}
`
})
Я хочу обязательно вызвать HomePageQuery
, а затем, как только получу результат, сделать что-нибудь с someImportantValue
.
Итак, я попробовал это:
// This is a Relay Environment using react-relay-network-modern w/ some middleware
// can give implementation details if required but didn't think necessary
import relayEnv from 'Relay/createRelayEnvironment'
const data = await fetchQuery(relayEnv.environment, HomePageQuery, {})
console.log(data)
Затем это возвращает мне результат, но все же разбитый на фрагменты. например
{ viewer:
{
__fragments: {SubComponent_viewer: {…}}
}
}
Есть ли способ получить ответ от этого, как вы найдете в graphiQL? например
{
viewer: {
me: {
someImportantValue: 39
}
}
}
Я мог бы попытаться пройтись по фрагментам, чтобы найти то, что мне нужно, но это кажется слишком сложным и будет уязвимым для изменений в структуре компонентов.
Является ли мой единственный вариант получить его из местного магазина после этого?
В настоящее время используется Relay v7