Как: получить доступ к методу client.mutate из Apollo? Рефакторинг с 1.9.2 до 2.4.2 - PullRequest
0 голосов
/ 18 ноября 2018

ОС: Windows 10 Pro
apollo-boost: "^ 0.1.16"
apollo-client: "^ 2.4.2"

Кто-нибудь знает, как получить доступ к методу client.mutate из Аполлона сейчас? Я хочу сделать следующее:

  client.mutate({
      mutation: REMOVE_FROM_CART_MUTATION,
      variables: {
         cartItem.id,
      },
  })
  .catch(this.handleSubmitError);

....
withApollo(CartItem);

1 Ответ

0 голосов
/ 01 марта 2019

Если вы используете React, вы можете импортировать withApollo следующим образом:

import { withApollo } from 'react-apollo';

, затем обязательно оберните компонент (я делаю это при экспорте):

export default withApollo(CartItem);

При этом ApolloProvider автоматически введет client в ваш реквизит, и вы сможете получить к нему доступ из компонента, выполнив this.props.client.mutate(...); или this.props.client.query(...);

ПРИМЕЧАНИЕ: это означает, что ваш компонент должен быть дочерним по отношению к ApolloProvider в вашем дереве компонентов.Документы Apollo рекомендуют делать это на самом высоком возможном уровне в вашем приложении, например:

<ApolloProvider client={client}>
  <App />
</ApolloProvider>

Дополнительную информацию об использовании API запросов и мутирования можно найти в справочнике по клиенту API Apollo .

Если вы пытаетесь напрямую взаимодействовать с локальным кешем, вы можете найти информацию об API client.readyQuery() и client.writeQuery() в клиенте Apollo GitHub repo .

...