Передача нескольких переменных в компонент Apollo Query

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. Что, если запрос принимает 2 аргумента, как передать 2 параметра?

{{ breed }} - это просто синтаксис объявления объекта ... тогда просто {{ breed, sthElse }}
xadm 14.09.2018 20:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
2 482
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы используете ES2015 Сокращенные имена свойств. Эти два синтаксиса эквивалентны.

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

Затем, если у вас есть запрос с двумя параметрами, например:

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}}`;

Abidh 17.03.2019 11:36

но он не работает ... Я хочу передать порядок по значению в качестве параметра

Abidh 17.03.2019 11:37

Похоже, что ты делаешь правильно. Что точно не работает?

Clément Prévost 17.03.2019 11:59

Ошибка: ошибка GraphQL: undefined в новом ApolloError (bundle.esm.js: 60) в bundle.esm.js: 1488 в Array.forEach (<anonymous>) в QueryManager. <anonymous> (bundle.esm.js: 1486) на шаге (tslib.es6.js: 97) на Object.next (tslib.es6.js: 78) на tslib.es6.js: 71 на новом обещании (<anonymous>) на __awaiter (tslib.es6.js: 67 ) в Object.next (bundle.esm.js: 1464)

Abidh 17.03.2019 14:11

любые проблемы с передачей asc или desc в виде строки. как только я получил сообщение об ошибке, связанное с "enum". Я забыл, какие изменения я сделал

Abidh 17.03.2019 14:16

Я считаю, что это напрямую не связано и это должен быть отдельный вопрос. Создайте новый вопрос StackOverflow со всем кодом, необходимым для воспроизведения, и вставьте ссылку сюда

Clément Prévost 17.03.2019 14:23

Другие вопросы по теме