Маршрутизатор React выдает ошибку за пределами

#javascript #reactjs #react-router

#javascript #reactjs #react-маршрутизатор

Вопрос:

Я использую React-Router 4.3.1 , и когда я создаю свое веб-приложение, я получаю ошибку

 Invariant Violation: "You should not use <Redirect> outside a <Router>"
  

Я использовал <Redirect /> только в 3 местах, и даже когда я комментирую их и создаю, я продолжаю получать ту же ошибку. При использовании serve на localhost ошибки нет, и она возникает только тогда, когда я использую express и обслуживаю ее через nginx прокси.

Я использовал <Redirect /> вот так

 <Switch>
    <ProtectedRoute
        path="/dashboard"
        name="Home"
        component={DefaultLayout}
    />
    <ProtectedRoute
        path="/"
        name="Home"
        component={DefaultLayout}
    />
    <Redirect to="/404" />
</Switch>
  

также похоже на это

Где ProtectedRoute находится

   <Route
        path={path}
        {...rest}
        render={props => {
            console.log(getCurrentUser());
            if (!getCurrentUser()) {
                return (
                    <Redirect
                        to={{
                            pathname: "/login",
                            state: { from: props.location }
                        }}
                    />
                );
            } else {
                return Component ? <Component {...props} /> : render(props);
            }
        }}
    />
  

и другие <Redirect /> подобные этому

 <Suspense fallback={this.loading()}>
    <Switch>
        <Redirect from="/" to="/dashboard" />
    </Switch>
</Suspense>
  

Последнее, как

 if (getCurrentUser()) return <Redirect to="/dashboard" />;
  

Есть ли что-то неправильное в том, как я его использую.

С помощью netlify я могу обслуживать без каких-либо проблем.

Комментарии:

1. Есть ли у вас компонент маршрутизатора, переносящий приостановку

2. Нет, это просто <Container><Suspense .../></Container>

3. С помощью netlify я могу обслуживать без каких-либо проблем.

4. Имеется в виду, что это компонент маршрутизатора в родительской иерархии компонента Suspense, иначе перенаправление будет за пределами маршрутизатора, который не будет работать

5. О, так мне нужно обернуть <Suspense /> маршрутизатором?