На одной из моих страниц в моем приложении я делаю два вызова API с помощью клиента Graphql Apollo. Один document
, другой menu
. Мне нужны данные меню в одном из моих компонентов, поэтому я хочу использовать readQuery
, чтобы не получать его снова. Что я делаю:
const client = useApolloClient();
try {
const testData = client.readQuery({
query: gql`
query ($result: String) {
menu(result: $result) {
text
}
}
`,
variables: {
result: „testresult”
},
});
console.log(testData);
} catch(e) {
console.log(e);
}
То, что делает graphQL, ищет document
корневой запрос, поэтому ошибка выглядит следующим образом:
Invariant Violation: Can't find field menu({"lang":"en-us"}) on object
{
"document({\"lanf\":\"en-us\",\"id\":\"mySite\"})": {
"type": "id",
"generated": false,
"id": "XO5tyxAAALGzcYGG",
"typename": "Document"
}
}.
Я считаю, что это потому, что данные меню еще не там.
Как я могу ждать, пока он там будет?