Так я настраиваю свой клиент GraphQL У меня есть страница App.tsx, которая направляет меня на страницу входа, после аутентификации я попадаю на страницу "/ index". В случае ошибки (ошибка сети и ошибка GraphQL) перенаправляется страница «/ ошибка».
App.tsx
export default () => (
<ErrorBoundary>
<ThemeProvider theme={theme}>
<CssBaseline />
<Router>
<Security {...config}>
<Suspense fallback={<Loading />}>
<Switch>
<Route path="/login" render={renderLogin} />
<SecureRoute path="/" component={Root} />
</Switch>
</Suspense>
</Security>
</Router>
</ThemeProvider>
</ErrorBoundary>
);
index.tsx
return (
<ApolloProvider client={client}>
<Switch>
<Route path="/index" component={indexScreen} />
<Route path="/error" component={ErrorPage} />
<Redirect to="/index" />
</Switch>
</ApolloProvider>
);
};
Вот так я настроил свой ApolloClient
export default ({ history, auth }: ApolloProps) =>
new ApolloClient({
uri: "/v1/graphql",
onError: ({ networkError, graphQLErrors }) => {
if (networkError || graphQLErrors) {
history.push("error", "Network Error Occurred");
} else if (graphQLErrors) {
history.push("error", "Graphql Error Occurred");
}
},
request: async operation => {
const token = await auth.getAccessToken();
},
});
Как мне обработать Внутреннюю ошибку сервера, которую я получаю, если мой сервер не работает. У меня также есть ErrorBoundary, установленный на App.tsx, но он ловит ошибку сервера. Кроме того, после реализации логики, направляющей пользователя на страницу с ошибками об ошибках, повторный рендеринг продолжает происходить, что приводит к возникновению бесконечной внутренней ошибки сервера. Любая помощь приветствуется. Спасибо.