Я пытаюсь создать простое приложение React с потоком аутентификации и приватным маршрутом. Сначала я проверяю, вошел ли пользователь и перенаправил ли он его, чтобы указать личный маршрут, но после того, как приложение перешло на приватный маршрут, оно не У меня есть информация о пользователе, вот мой код:
Приложение. Js
class App extends Component {
componentDidMount() {
this.props.fetchUser();
}
render() {
console.log('AUTH:' , this.props.signedIn);
return (
<div>
<BrowserRouter>
<Switch>
<Route exact path="/" render={() => <Redirect to={this.props.signedIn ? '/dashboard' : '/login'}/>}/>
<Route exact path="/login" component={Login} />
<PrivateRoute exact path="/dashboard" ><DashboardLayout/></PrivateRoute>
</Switch>
</BrowserRouter>
</div>
);
}
}
const mapStateToProps = state => ({
signedIn: state.auth.signedIn
});
const mapDispatchToProps = dispatch => ({
fetchUser: () => dispatch(fetchUser())
});
export default connect(mapStateToProps, mapDispatchToProps)(App);
PrivateRoute. js
const PrivateRoute = ({children, signedIn, ...rest}) => {
const checkToken = (location) => {
console.log("SignedIn", signedIn);
if(signedIn) {
return children;
}
else {
return <Redirect to={{pathname: '/login', state: {from : location}}}/>
}
};
return <Route
{...rest}
render={({location}) => checkToken(location)}
/>;
};
const mapStateToProps = state => ({
signedIn: state.auth.signedIn
});
export default connect(mapStateToProps, null)(PrivateRoute)
Итак, в моей консоли Google, Я вижу, что для моего журнала консоли AUTH установлено значение false из приложения. js, а также для входа в консоль журнала установлено значение false, но после повторного отображения для моего журнала консоли AUTH из приложения установлено значение True, но не go снова в PrivateRoute ![Google Console](https://i.stack.imgur.com/YOEos.png)