【问题标题】:Passing in multiple variables into an Apollo Query component将多个变量传入 Apollo Query 组件
【发布时间】:2018-09-16 00:30:22
【问题描述】:
const GET_DOG_PHOTO = gql`
  query Dog($breed: String!) {
    dog(breed: $breed) {
      id
      displayImage
    }
  }
`;

const DogPhoto = ({ breed }) => (
  <Query query={GET_DOG_PHOTO} variables={{ breed }}>
    {({ loading, error, data }) => {
      if (loading) return null;
      if (error) return `Error!: ${error}`;

      return (
        <img src={data.dog.displayImage} style={{ height: 100, width: 100 }} />
      );
    }}
  </Query>
);

我正在查看文档,我可以看到他们在 Query 组件的 variables 属性中传递了一个名为breed 的道具。如果查询有 2 个参数,如何传入 2 个参数?

【问题讨论】:

  • {{ breed }} 只是一个对象声明语法......然后只是{{ breed, sthElse }}

标签: reactjs apollo react-apollo


【解决方案1】:

您正在使用ES2015 Shorthand property names。这两种语法是等价的。

  <Query query={GET_DOG_PHOTO} variables={{ breed }}>
  <Query query={GET_DOG_PHOTO} variables={{ breed: breed }}>

然后,如果您有一个带有 2 个参数的查询,如下所示:

const GET_DOG_PHOTO = gql`
  query Dog($breed: String!, $size: Int!) {
    dog(breed: $breed, size: $size) {
      id
      displayImage
    }
  }
`;

查询组件如下所示

function DogPhoto({ breed, size }) => 
  return (
    <Query query={GET_DOG_PHOTO} variables={{ breed, size }}>
      {({ loading, error, data }) => {
        if (loading) return null;
        if (error) return `Error!: ${error}`;

        return (
          <img src={data.dog.displayImage} style={{ height: 100, width: 100 }} />
        );
      }}
    </Query>
  )
};

【讨论】:

  • 我正在尝试类似 ````const GET_DOG_PHOTO = gql` query Dog($order: String!) { dog(order_by: {size: $order}) { id displayImage } } `;
  • 但它不工作...我想按值传递订单作为参数
  • 看起来你做的是对的。什么不完全有效?
  • 错误:GraphQL 错误:在新的 ApolloError (bundle.esm.js:60) at bundle.esm.js:1488 at Array.forEach () at QueryManager. ( bundle.esm.js:1486) 在步骤 (tslib.es6.js:97) 在 Object.next (tslib.es6.js:78) 在 tslib.es6.js:71 在新 Promise () 在 __awaiter (tslib.es6.js:67) 在 Object.next (bundle.esm.js:1464)
  • 将“asc”或“desc”作为字符串传递的任何问题。一旦我收到与“枚举”相关的错误消息。我忘了我做了什么改变
猜你喜欢
  • 2021-06-09
  • 2019-09-16
  • 2019-01-12
  • 2022-11-02
  • 2023-03-15
  • 2018-06-27
  • 1970-01-01
  • 2020-09-05
  • 2019-01-25
相关资源
最近更新 更多