繁体   English   中英

Apollo 本地查询不适用于变量

[英]Apollo local query not working with variable

我正在使用 React Apollo 来管理我的应用程序中的本地状态,并尝试运行我的状态查询,但根据他们的文档传递了一个变量

这是我的设置:

默认状态

const defaults {
  myItems: [
    {
      __typename: 'Item',
      itemId: '1'
    },
    {
      __typename: 'Item',
      itemId: '2'
    }
  ]
}

我的组件

import React, { PureComponent } from 'react';
import { Query } from 'react-apollo';
import gql from 'graphql-tag';

const LOCAL_ITEMS_QUERY = gql`
  query LOCAL_ITEMS_QUERY($itemId: String){
    myItems(itemId: $itemId) @client {
      __typename
      itemId
    }
  }
`;

class MyComponent extends PureComponent {
  render() {

    return (
      <div>
        <Query query={LOCAL_ITEMS_QUERY} variables={{ itemId: '1' }}>
          {myItems=> {
            console.log(myItems)
            return <div />
          }}
        </Query>
      </div>
    );
  }
}

export default MyComponent;

组件MyComponent的上述查询返回包含两个项目的数组,而不仅仅是 itemId 为'1'

我这里哪里出错了? 似乎可以使用变量查询本地状态,但不确定为什么它对我不起作用

您应该查询单个Item ,例如

const LOCAL_ITEM_QUERY = gql`
  query LOCAL_ITEM_QUERY($itemId: String){
    Item(id: $itemId) @client {
      __typename
      id
    }
  }
`;

...但这取决于类型定义。

请注意, id__typename用作缓存中的键 - 不是任何自定义命名的itemId 这个

本地状态(带有@client )数据记录在此处- 通过 id 或其他字段访问可能需要本地解析器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM