Я использую react-router и react-router-redux, я перенаправлю пользователя на страницу входа, если он попытается посетить страницу, требующую входа в систему без входа в систему:
<Route path="/react/myprofile" component={MyProfile} onEnter={requireAuth} /></Route>
function requireAuth(nextState, replace) {
const state_user = store.getState().auth.user;
if (!state_user) {
console.log('not logged in, redirect')
replace({
pathname: '/react/login',
state: { nextPathname: nextState.location.pathname }
})
}
}
И после того, как пользователь войдет в систему, я перенаправлю пользователя на «/react/myprofile»: в моей редукционной саге я делаю следующее:
const route_state = get routing state from the store;
redirectTo(route_state.locationBeforeTransitions.state.nextPathname);
Как и выше, я должен получить информацию из route_state.locationBeforeTransitions.state.nextPathname
, она слишком многословна, и это кажется странным.
Интересно, есть ли лучший способ сделать это? Спасибо.