Подтвердить что ты не робот

Apollo Client (React): Обработка непредвиденных ошибок

Я просматривал документацию Apollo, но я не вижу информации о том, как обращаться с обработкой ошибок сервера в клиенте Apollo.

Например, предположим, что сервер:

  • Тайм-аут
  • становится недоступным
  • Неожиданно сбой

Как это должно быть обработано в клиенте? Apollo в настоящее время терпит неудачу с ошибками, такими как:

Необработанный (в реакции-apollo) Ошибка: ошибка GraphQL: не может...

Я бы хотел избежать этого и обработать эти ошибки. Как я могу это сделать с помощью React Apollo?


Для справки:

В настоящее время я использую React-Apollo и Redux.

4b9b3361

Ответ 1

Ошибки передаются в поле error на реквизитах вашего компонента: http://dev.apollodata.com/react/api-queries.html#graphql-query-data-error

function MyComponent({ data }) {
  if (data.error) {
    return <div>Error!</div>;
  } else {
    // ...
  }
}

export default graphql(gql`query { ... }`)(MyComponent);

Это сообщение печатается, если мы обнаруживаем, что произошла ошибка, а поле error не было доступно в компоненте.

Вы можете написать компонент более высокого порядка для обработки ошибок общим способом, чтобы вы могли обернуть все ваши компоненты.