У меня есть компонент приложения, который я пытаюсь сделать PrivateRoute следующим образом:
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
this.state.auth === true ? <Component {...props} /> : <Redirect to="/" />
}
/>
);
проблема в том, что this.state.auth находится внутри компонента приложения, а маршрут находится вне компонента, поэтомуУ меня нет доступа к нему, как я могу получить логическое значение из состояния?
PS.Вы не поняли вопрос: это мой код для уточнения:
import React, { Component } from 'react';
import {
BrowserRouter as Router,
Route,
Link,
Redirect,
Switch
} from 'react-router-dom';
import './App.scss';
import ChangePass from './components/ChangePass';
import MManager from './components/MManager';
import Mworker from './components/Mworker';
import Mclient from './components/Mclient';
import Login from './components/Login';
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
this.state.auth === true ? <Component {...props} /> : <Redirect to="/" />
}
/>
);
class App extends Component {
state = {
id: '',
password: '',
role: '',
token: '',
firstName: '',
lastName: '',
auth: false,
error: false
};
Как вы видите, состояние находится внутри компонента приложения, я хочу получить к нему доступ в PrivateRoute, как мне это сделать?