Я изучаю, как использовать Apollo Client для React и как управлять локальным состоянием с помощью кэша.Из docs это так же просто, как запись в кэш с использованием cache.writeData
и чтение из него с помощью простого запроса.Их пример:
const GET_VISIBILITY_FILTER = gql`
{
visibilityFilter @client
}
`;
Затем я обертываю свой JSX в запрос и могу прочитать значение отлично (в моем случае loggedIn
)
return <Query query={GET_LOGGED_IN}>
{({loading, error, data}) => {
const {loggedIn} = data
Мне любопытно, хотя,почему мне не нужно писать решатель для этого, чтобы работать.Это потому, что со скалярными значениями, если значение существует в корне объекта, то есть здесь, на верхнем уровне кэша, Apollo / GraphQL автоматически просто захватывает это значение и отправляет его вам без распознавателя?
Каковы ограничения этого, то есть, вы могли бы получить массивы на корневом уровне без написания резольвера?Объекты?Я предполагаю, что нет, , поскольку это не скаляры .Но если данные жестко запрограммированы, то есть не требуют поиска в БД, ответ все равно будет «нет»?