代码之家  ›  专栏  ›  技术社区  ›  deadcoder0904

查询在GraphiQL中工作,但在使用React Apollo时在实际代码中返回空数组

  •  0
  • deadcoder0904  · 技术社区  · 7 年前

    我有个简单的问题

    import gql from "graphql-tag";
    
    export const GET_TODOS_BY_PRODUCT = gql`
      query getTodosByProduct(
        $id: ID!
        $completed: Boolean = false
        $limit: Int = 100
      ) {
        product(id: $id) {
          hashtag
          todos(completed: $completed, limit: $limit) {
            body
          }
        }
      }
    `;
    

    在GraphiQL中,它返回如下结果-

    {
      "data": {
        "product": {
          "todos": [
            {
              "body": "Remove Custom Font from Tweet #a2k",
              "product": {
                "id": "1439"
              },
              "__typename": "Todo"
            },
            {
              "body": "Make Site a PWA #a2k",
              "product": {
                "id": "1439"
              },
              "__typename": "Todo"
            }
                ]
            }
        }
    }
    

    但是在使用React Apollo的查询组件时,它返回 hashtag 正确但又回来了 todos 作为空数组[]&我似乎无法找出查询的问题所在。

    如果我从 托多斯 然后它会正确地返回它们,但只有 托多斯 返回空数组 [] .

    我请求它就像-

    <Query
          query={GET_TODOS_BY_PRODUCT}
          variables={{ id: state.get("selectedProduct.id") }}
        >
          {({ data: { product } }) => {
            return <Main todos={product.todos} hashtag={product.hashtag} />;
          }}
    </Query>
    

    我好像不明白为什么出了什么事?有什么建议吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   deadcoder0904    7 年前

    多亏了@dkulkarni,我找到了解决办法。在我的图表中, completed true &在阿波罗中,我并不是这样设置的 false .

    我的产品没有 完整的 等于 所以事情搞砸了。

    再次感谢@dkulkarni我为此浪费了两个小时