React Router выбрасывает <Redirect>за пределами ошибки <Router> - PullRequest
0 голосов
/ 20 марта 2019

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

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

Я использовал <Redirect /> только в 3 местах, и даже когда я комментирую их и собираю, я получаю ту же ошибку. Использование serve на локальном хосте не вызывает ошибки, и это происходит только тогда, когда я использую 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 я могу служить без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...