Как передать переменные в компонент Apollo Mutation? - PullRequest
0 голосов
/ 07 февраля 2019

Начиная с версии 2.1 Apollo Client использует шаблон реквизита рендеринга React.

На официальной документации клиента Apollo variables передаются в качестве параметра функции мутации:

addTodo({ variables: { type: input.value } });

однако различные учебники, в том числе Как GraphQL , передают их как реквизиты:

<Mutation mutation={POST_MUTATION} variables={{ description, url }}>

Какие есть причины для выбора того или иного пути?

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете безопасно использовать любой метод передачи переменных в мутацию.

Большую часть времени я использовал бы переменные prop для установки переменных, поскольку это довольно ясно и аккуратно.

Например, вам может понадобиться использовать другой метод при вызове метода мутации из дочернего компонента, где переменные также содержатся в этом дочернем компоненте.

Чтобы продолжить из приведенного выше примера кода: представьте массив компонентов в списке задач, каждый из которых имеет вход, но вызывает одну мутацию (находится в родительском компоненте).Было бы проще вызвать мутацию изнутри каждого дочернего компонента, например:

updateToDoItem({variables: {id: this.props.id, text: this.state.text}})

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