Я хочу использовать response-router (v3.0.2) onEnter для аутентификации, метод replace не работает при первом доступе, но выдается ошибка. Как я могу это сделать?
Целевая страница может быть защищена. (авторизация при входе)
export default {
path: '/',
component: LandingContainer,
onEnter: (router, replace) => {
const { store, actions } = context
const { getState, dispatch } = store
const state = getState()
const user = state.get('user')
if (!user.get('_id')) {
dispatch(actions.setReturnUrl(location.pathname +
location.search))
replace('/login')
return
}
return
},
childRoutes: [
require('./user').default || require('./user'),
require('./live').default || require('./live'),
require('./course').default || require('./course')
],
indexRoute: {
component: Main
}
}
замена не работает, но возникает ошибка (только первый рендеринг)
warning.js?8a56:33 Warning: Failed prop type: The prop `routes` is marked as required in `Root`, but its value is `undefined`.
in Root
warning.js?8a56:33 Warning: Failed child context type: The child context `routes` is marked as required in `Root`, but its value is `undefined`.
in Root
in AppContainer
Warning: [react-router] Location "/" did not match any routes