阿波罗初学者:无法从缓存读回数据

时间:2018-09-16 10:51:32

标签: apollo react-apollo

我有这段代码来控制搜索字段的值

const GET_SHOP_FILTER = gql`
  query getFilter {
    name @client
  }
`;

class ShopSuggestBox extends Component {
    render() {
        return (
                <div>
                    <div className="name">
                        <Query query={GET_SHOP_FILTER}>
                            {({data, client}) => (
                                    <div>
                                        data is {JSON.stringify(data)}
                                    <input
                                           onChange={e => {
                                               client.writeData({data: {name: e.target.value}})
                                           }} ...//not relevant

我的问题是出现以下错误:

[GraphQL错误]:消息:无法在类型“查询”上查询字段“名称”。,位置:[对象对象],路径:未定义 index.js:63 [GraphQL错误]:消息:未知指令“客户端”。,位置:[对象对象],路径:未定义

我的理解是指令@client不会被解释。我想念什么?

1 个答案:

答案 0 :(得分:1)

问题是,即使文档说不需要解析器,您也必须提供一个空的解析器才能使它起作用。

我修改了以下代码(因此doc是错误的)

const client = new ApolloClient({
    //uri: "http://localhost:4000/graphql"
//  cache,

    clientState: {
        defaults: {
            name: "my",
            city: "",
            selectedId: null,
            previewId: null,
            selectedComplaintId: null,
        }, resolvers: {}
    }
});