Я пытаюсь сделать проверку авторизации в приложении, написанном с помощью React Router v4.
Код выглядит следующим образом:
...
<Route render={(props) => {requireAuth(props); return <LoggedInLayout/>;}} />
//Перед тем, как перейти на определенный роут, проходит процесс проверки авторизовал ли пользователь или нет
...
function requireAuth(props) {
if (!SessionStore.isLoggedIn() && props.location.pathname.indexOf('login') === -1) {
props.history.location.state = {nextPathname: props.location.pathname};
props.history.replace('/login');
}
}
При выполнении данной проверки в консоль вываливается предупреждение:
Warning: Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state. react-dom.development.js?61bb:506
Методом проб и ошибок выяснил, что строка
"props.history.replace('/login');"
выдает этот Warning.
Подскажите пожалуйста, по какой причине в консоли показывается предупреждение, и каким образом это можно исправить?