Apollo graphQL - вы можете запрашивать локальное состояние, используя переменные, без необходимости использования преобразователя? - PullRequest
0 голосов
/ 01 мая 2019

Я использую apollo-cache-inmemory, apollo-client, response-apollo.

Мое локальное состояние содержит массив пользователей, например, так: -

users: [{

__typename: "User",

userId: "hashid1",

...
},

{

__typename: "User",

userId: "hashid2",

...
}]

Теперь я, очевидно, могу выполнить простой запрос для извлечения всех пользователей из локального состояния: -

import gql from "graphql-tag"
export default gql`{users @client {userId}}`

Однако я хотел бы иметь возможность напрямую запрашивать массив пользователей, передавая переменные следующим образом: -

const userDetails = await client.query({ query: USER_DETAILS, variables: {id: "hashId1"}})

Возможно ли выполнить этот запрос без использования распознавателя? Я попытался сделать следующее, но {data} возвращает значение NULL: -

export default gql`query user($id: String!) {users(userId: $id) @client {userId}}`

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

1 Ответ

1 голос
/ 01 мая 2019

Похоже, вы ищете какую-то магию;)

Вы должны написать код настройки (перезаписать распознаватель по умолчанию - вернуть все записи) , чтобы настроить поведение (вернуть данные, отфильтрованные по вашим критериям).Это должно быть obviuos.

Нет никакого стандартного / готового / встроенного синтаксиса поиска / фильтрации в graphql - следовательно, для apollo-client нет поведения по умолчанию для них (независимо от локального / удаленного сервера / данных),Вам решать, что вам нужно.

...