Когда какой-либо пользователь пытается получить доступ к любой странице моего приложения, вызывается промежуточное программное обеспечение React Router, чтобы проверить, вошел ли пользователь в систему. Проблема в том, что для доступа к хранилищу Redux мне нужно использовать store.getState()
, и если я используюstore.listen(...)
Я получаю сообщение об ошибке ('component' doesn't exist
).
const PrivateRoute = ({ component: Component, ...rest }) => { // Receive component and path
return (
<Route { ...rest } render={(props) => {
return store.getState().login.token.status === 200
? <Component { ...props } />
: <Redirect to="/login" />
}}
/>
)
}
// store.subscribe(PrivateRoute) // Error when some page is requested
export default PrivateRoute;
Я знаю, что для прослушивания изменений в этой функции мне нужно передать компонент, но я думаю, что это невозможно, потому что это промежуточное ПО.Мне действительно нужно прислушиваться к изменениям в этом случае, если да, как я могу это сделать (как издеваться над вещами такого типа)?
Obs : Пример <PrivateRoute path="/private" component={() => <h1>Private</h1>}/>