Я пытаюсь создать PrivateRoute (HOC), чтобы проверить, был ли пользователь аутентифицирован (проверьте, существует ли «auth» в хранилище с избыточностью) перед отправкой его на фактический маршрут.Проблема в том, что личный кабинет завершает работу до того, как мой auth появляется в хранилище резервов.
console.log запускается дважды, первый раз, когда auth не появляется в хранилище, но это происходит во второй раз, но к тому времени, он уже перенаправил пользователя на экран входа в систему .... Как я могу дать достаточно времени для завершения выборки?Я знаю, как выполнить это условие, когда я просто хочу отобразить что-то условно (например, кнопки входа / выхода), но этот же подход не работает при попытке условно маршрутизировать кого-либо.
import React, { Component } from 'react'
import { connect } from 'react-redux'
import { Route } from 'react-router-dom'
class PrivateRoute extends Component {
render() {
const { component: Component, ...rest } = this.props
console.log(this.props)
return (
<Route {...rest} render={(props) => (props.auth ? <Component {...props} /> : props.history.push('/login'))} />
)
}
}
function mapStateToProps({ auth }) {
return { auth }
}
export default connect(mapStateToProps)(PrivateRoute)