Как реализовать фильтр по запросу в Apollo?

Я пытаюсь отфильтровать запрос по определенному полю. Я могу добиться этого в проводнике Apollo в инструментах разработки, но я не могу перевести это в код.

Следующие работы в проводнике Apollo:

query ListUsersByType($filter: TableUsersFilterInput) {
  listUsers(filter: $filter) {
    items {
      email
      id
      type
    }
  }
}
{
  "filter": {
    "type": {
      "eq": "ADMIN"
    }
  }
}

Однако я не уверен, как это переводится в код с использованием хука useQuery.

Когда я пытаюсь сделать следующее, он вообще не фильтрует список, он просто извлекает их все независимо от типа:

const ListUsersByType = gql`
  query ListUsersByType($type: TableUsersFilterInput) {
    listUsers(filter: $type) {
      items {
        email
        id
        type
      }
    }
  }
`
  const { data, loading, error } = useQuery(ListUsersByType, {
    variables: {
      filter: {
        type: {
          eq: 'ADMIN',
        },
      },
    },
  })

Что мне здесь не хватает?

Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
0
0
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Ваши имена неверны

Вот вы говорите filter will use the variable type

const ListUsersByType = gql`
  query ListUsersByType($type: TableUsersFilterInput) {
    listUsers(filter: $type) {
      items {
        email
        id
        type
      }
    }
  }
`

И вот ты проходишь filter

  const { data, loading, error } = useQuery(ListUsersByType, {
    variables: {
      filter: {
        type: {
          eq: 'ADMIN',
        },
      },
    },
  })

Вы можете

Первое решение

заменить $type на $filter

const ListUsersByType = gql`
  query ListUsersByType($filter: TableUsersFilterInput) {
    listUsers(filter: $filter) {
      items {
        email
        id
        type
      }
    }
  }
`

Второе решение

переименуйте переменную filter в type

  const { data, loading, error } = useQuery(ListUsersByType, {
    variables: {
      type: {
        type: {
          eq: 'ADMIN',
        },
      },
    },
  })

Мое мнение

Я позволяю вам выбирать, но первый вариант кажется лучшим

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