Я создаю приложение «Реакция Аполлона».Я хочу, чтобы Аполлон управлял моим местным государством.Я хочу структурировать свое локальное состояние, чтобы не все скалярные значения были на верхнем уровне.
Это моя конфигурация:
import React from 'react'
import ReactDOM from 'react-dom'
import ApolloClient from 'apollo-boost'
import gql from 'graphql-tag'
import { InMemoryCache } from 'apollo-cache-inmemory'
import { ApolloProvider, Query } from 'react-apollo'
const defaults = {
author: null
}
const resolvers = {
Query: {
author() {
return { id: 1 }
}
}
}
const typedefs = gql(`
type Query {
author: Author
}
type Author {
id: Int
}
`)
const apolloClient = new ApolloClient({
clientState: {
defaults,
resolvers,
typedefs
},
cache: new InMemoryCache()
});
ReactDOM.render(
<ApolloProvider client={ apolloClient }>
<Query query={ gql`{ author @client }` }>
{ ({ data }) => console.log(data.author) || null }
</Query>
</ApolloProvider>,
document.getElementById('app')
)
Затем это приложение регистрирует undefined
.Т.е. запрос { author @client { id }}
возвращает undefined
в data.author.
Следует отметить, что когда я устанавливаю тип автора как Int, значение по умолчанию равно 1
, и я выполняю запрос { author @client }
, приложение правильно записывает в журнал 1
.
Как я могу иметь некоторую структуру в своем локальном состоянии с Apollo?
Это мои соответствующие зависимости:
apollo-cache "^1.1.20"
apollo-cache-inmemory "^1.3.8"
apollo-client "^2.4.5"
apollo-link "^1.0.6"
apollo-link-error "^1.0.3"
apollo-link-http "^1.3.1"
apollo-link-state "^0.4.0"
graphql-tag "^2.4.2"