Network error: Converting circular structure to JSON on refetch

Network error: Converting circular structure to JSON on refetch

这是一个很奇怪的问题。

我有一个相当简单的查询,无论我触发它多少次,它在 Graphiql 中都运行得很好

但是在浏览器中,当我调用 data.refetch() 时问题出现了。最奇怪的是我在 Chromium 中得到 Network error: Converting circular structure to JSON 如果 FF 错误是什么时候 Network error: cyclic object value

在Chrome中,我没有安装redux-dev-tools,报错和Chromium一样

其他查询很好地重新获取,但是这个被卡住了!当然我已经多次重启服务器,清除缓存等..

我正在使用 apollo v2,查询没有什么特别的:

query ProductsListQuery($offset: Int!, $limit: Int!) {
  products(offset: $offset, limit: $limit) {
    items {
      id
      title
      shortDescription
      tags
      imagesIds
      __typename
    }
    total
    __typename
  }
}

结果:

{
  "data": {
    "products": {
      "items": [
        {
          "id": "5a39b5469066625581a326c4",
          "title": "Test1",
          "shortDescription": "",
          "tags": [],
          "imagesIds": {
            "main": null
          },
          "__typename": "Product"
        },
        {
          "id": "5a39b55b9066625581a3270b",
          "title": "Test2",
          "shortDescription": "",
          "tags": [],
          "imagesIds": {
            "main": null
          },
          "__typename": "Product"
        }
      ],
      "total": 2,
      "__typename": "ProductsPaginated"
    }
  }
}

感谢@Daniel Rearden,我研究了重新获取是如何触发的,并发现这不起作用,原因我无法解释:

<Button onClick={data.refetch} />

但这行得通

<Button onClick={() => data.refetch() />