Я создаю приложение с apollo-boost, которое должно включать уже некоторые пакеты для создания приложения реагирования с graphql.
В данный момент я вижу ошибку, я хочу сохранить фрагменты данныхв мой кеш Apollo.
ApolloClient.tsx
import ApolloClient from 'apollo-boost'
import { InMemoryCache } from 'apollo-cache-inmemory'
import { secretToken } from './secretToken'
const cache = new InMemoryCache({
})
const client = new ApolloClient({
uri: 'https://someUrlIremovedForTheQuestion.com',
request: async operation => {
operation.setContext({
headers: {
Authorization: secretToken
}
})
},
cache
})
client.writeData({
data: {
names: [
{
firstName: 'Mario'
},
{
firstName: 'Luigi'
}
]
}
})
export default client
Теперь я пытаюсь получить доступ к этим именам, которые я создал здесь в той же конфигурации apollo:
MyComponent.tsx
const result = client.readQuery({ query: gql`
query namesCached {
names @client
}`
})
console.log(result)
это всегда относится к этой ошибке:
Missing selection set for object of type undefined returned for query field names
Если я делаю один фрагмент данных, например name: 'Mario'
, это прекрасно работаети извлекать этот фрагмент данных, но для более глубоких объектов или массивов это всегда дает сбой с этой ошибкой.
Я также использую Typescript
Есть идеи, что может быть?Переполнение стека показывает мне пару нерабочих ответов, и GitHub также не предоставляет мне решения ...
Edit Итак, вот мой реальный пример, чтобы сделать его ближе к моемуреальная проблема:
<Query
query={fetchdata}
onCompleted={({ repository }) => client.writeData({
data: {
issues: repository.issues.edges
}
})
}
>
В основном я делаю запрос, и после его завершения я хочу сохранить его в кеше, поскольку проверяю его несколько раз, чтобы сравнить и отфильтровать некоторые результаты.
Я пытался просто с repository
, но все еще с той же ошибкой
Чтобы извлечь данные, я делаю то же, что и выше, но с issues
вместо names