Apollo客户端本地状态__type查询

时间:2019-08-14 04:07:31

标签: apollo-client

我有一个通用的过滤组件。当前,您提供了filterProps对象,因此我知道您要过滤的对象,我想减少此操作所需的代码量。我只希望提供过滤器类型,而不是提供过滤器字段,并且通过本地自省,我神奇地知道需要哪些字段。

cache.readQuery({
    query: gql`
        {
            __type(name:"CarFilter"){
                fields {
                    name
                }
            }
        }
    `
})

这似乎不起作用,并且会爆炸

不变违反:在对象上找不到字段__type({“ name”:“ CarFilter”})

"carFilter": {
    "type": "id",
    "generated": true,
    "id": "$ROOT\_QUERY.carFilter",
    "typename": "CarFilter"
}

对本地缓存类型的自省是否有效?难道我做错了什么?还是这是一个错误?

“ apollo-cache-memory”:“ ^ 1.6.2”,
“ apollo-client”:“ ^ 2.6.3”,
“ apollo-link”:“ ^ 1.2.12”, “ apollo-link-context”:“ ^ 1.0.18”,
“ apollo-link-http”:“ ^ 1.5.15”,
“ apollo-link-ws”:“ ^ 1.0.18”,
“ apollo-utilities”:“ ^ 1.3.2”,

谢谢

我尝试使用__typename的多种变体编写查询,并且不按任何类型进行过滤。似乎没有任何作用。这些类型的查询在服务器上工作正常,但不适用于仅客户端数据

我希望看到类似这样的内容,但是代码只会引发异常。

{
  "data": {
    "__type": {
      "fields": [
        {
          "name": "brand"
        },
        {
          "name": "makeModel"
        },
        {
          "name": "gasMileage"
        },
        {
          "name": "firstProductionDate"
        }
      ]
    }
  }
}

0 个答案:

没有答案