реагировать приватный маршрут - PullRequest
1 голос
/ 02 мая 2020

Я пытаюсь применить privateRoute, но он не работает ни с компонентом, ни с перенаправлением, которое я пробовал, также используя дочерние элементы, такие как документация, но та же проблема. React не читает Component, и пока я импортирую его, я получаю сообщение об ошибке: компонент вызван, но не используется

import React from "react";
import { BrowserRouter as Route, Redirect } from "react-router-dom";
import { isAuthenticated } from './auth';

const PrivateRoute = ({ component: Component, ...rest }) => (
    <Route
        {...rest}
        render={props =>
            isAuthenticated() ? (
                <Component {...props} />
            ) : (
                    <Redirect
                        to={{
                            pathname: "/signIn",
                            state: { from: props.location }
                        }}
                    />
                )
        }
    />
);
export default PrivateRoute;
```
my routes in app
``
function App() {
  return (
    <Router>
      <NavbarComponent />
      <Switch>
        <Route path="/" exact component={Home} />
        <Route path="/products" exact component={Products} />
        <Route path="/signIn" exact component={SignIn} />
        <Route path="/signUp" exact component={SignUp} />
        <PrivateRoute path="/dashboard" exact component={Dashboard} />
        <Redirect to="/" />
      </Switch>
    </Router>
  );
}
`

```

1 Ответ

1 голос
/ 02 мая 2020

Вы должны импортировать и использовать Route при определении PrivateRoute компонента

import { Route, Redirect } from "react-router-dom";

, а не BrowserRouter:

import { BrowserRouter as Route, Redirect } from "react-router-dom";

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