Как отфильтровать запрос GraphQL с реляционными параметрами, React Native - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть приложение React Native, которое дает мне список свойств. Каждое свойство имеет свою собственную страницу и ссылку на экран, на котором перечислены все заметки, связанные с этим свойством И этим пользователем. Таким образом, пользователь может видеть только заметки, созданные им для этого конкретного свойства, на этом экране.

У меня проблемы с написанием запроса GraphQL, который получает все заметки, связанные с текущим свойством И текущим пользователем.

Мой основной инстинкт это написать так ...

const getNotes = gql`
  query getNotes {
    allPropertyNotes(filter: {
        AND: [{
            propertyId: ${this.props.navigation.state.params.id}
        }, {
            userId: ${this.props.screenProps.user.id}
        }]
    }, orderBy: createdAt_DESC) {
        id
        title
        body
    }
}
`;

Но, похоже, это не работает, потому что запрос определен вне компонента и не имеет доступа к this.props (я предполагаю).

Следующим моим шагом было сделать это

const getNotes = gql`
  query getNotes($userId: ID!, $propertyId: ID!) {
    allPropertyNotes(filter: {
        AND: [{
            propertyId: $propertyId
        }, {
            userId: $userId
        }]
    }, orderBy: createdAt_DESC) {
        id
        title
        body
    }
}
`;

Но я не уверен, как связать переменные с идентификаторами, которые мне нужны. Любые указатели о том, как это сделать?

1 Ответ

0 голосов
/ 05 сентября 2018

Если вам нужен только «запрос на монтирование», просто визуализируйте компонент <Query/>, используя реквизиты в качестве переменных. Пример с переменными

То же самое вы можете сделать с graphql () options.variables

Передача запроса (запускается при запуске по умолчанию) и [много] мутаций в качестве реквизита для более сложных случаев. 1011 * Docs *

Документы здесь не многословны, вы должны собирать знания из многих мест / частей или искать учебники.

...