Apollo Client (React): Обработка непредвиденных ошибок
Я просматривал документацию Apollo, но я не вижу информации о том, как обращаться с обработкой ошибок сервера в клиенте Apollo.
Например, предположим, что сервер:
- Тайм-аут
- становится недоступным
- Неожиданно сбой
Как это должно быть обработано в клиенте? Apollo в настоящее время терпит неудачу с ошибками, такими как:
Необработанный (в реакции-apollo) Ошибка: ошибка GraphQL: не может...
Я бы хотел избежать этого и обработать эти ошибки. Как я могу это сделать с помощью React Apollo?
Для справки:
В настоящее время я использую React-Apollo и Redux.
Ответы
Ответ 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
не было доступно в компоненте.
Вы можете написать компонент более высокого порядка для обработки ошибок общим способом, чтобы вы могли обернуть все ваши компоненты.