Обработка внутренней ошибки сервера при подключении к Graphql - PullRequest
0 голосов
/ 28 июня 2019

Так я настраиваю свой клиент 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, но он ловит ошибку сервера. Кроме того, после реализации логики, направляющей пользователя на страницу с ошибками об ошибках, повторный рендеринг продолжает происходить, что приводит к возникновению бесконечной внутренней ошибки сервера. Любая помощь приветствуется. Спасибо.

...