redux-auth-wrapper 重定向不起作用
redux-auth-wrapper redirect not working
我正在使用 redux-auth-wrapper 来处理受保护路由的身份验证路由逻辑。但是,它没有重定向。
我的 "user" 对象在状态中的形状是:
// state.auth
{
isAuthenticated: true,
isLoading: false,
loadError: null
}
这是我的 routes/index.js
文件
const authenticated = UserAuthWrapper({
authSelector: state => state.auth,
predicate: authData => authData.isAuthenticated,
redirectAction: routerActions.replace,
// redirects to /login by default
})
export default (
<Route path="/" component={App}>
<IndexRoute component={authenticated(Secret)} />
<Route path="/login" component={Login} />
<Route path="/item_1" component={Item1} />
<Route path="/item_2" component={Item2}>
<Route path="/nested_item_2/:id" component={NestedItem2} />
</Route>
</Route>
)
我的 IndexRoute
是一个受保护的组件,所以当我转到 localhost:3000
时,我希望它会将我重定向到 /login
,但没有任何反应。它只是停留在具有空主体的 Secret
组件上。
遇到了同样的问题,并找到了解决方案。您可能也已经找到了它,但它在这里:
您的代码中必须包含此内容才能使重定向生效:
import { createStore, applyMiddleware } from 'redux'
import { browserHistory } from 'react-router'
import { routerMiddleware } from 'react-router-redux'
import rootReducer from './reducers.js'
const middleware = routerMiddleware(browserHistory);
const store = createStore(
rootReducer,
preloadedState,
applyMiddleware(middleware)
);
传递给createStore()
的第三个参数是强制的
我从这个 github topic 中找到了答案,请随时查看更多详细信息。
注意:Ctrl+F:"codereviewvideos" 以获得正确答案;)
希望对您有所帮助!
我正在使用 redux-auth-wrapper 来处理受保护路由的身份验证路由逻辑。但是,它没有重定向。
我的 "user" 对象在状态中的形状是:
// state.auth
{
isAuthenticated: true,
isLoading: false,
loadError: null
}
这是我的 routes/index.js
文件
const authenticated = UserAuthWrapper({
authSelector: state => state.auth,
predicate: authData => authData.isAuthenticated,
redirectAction: routerActions.replace,
// redirects to /login by default
})
export default (
<Route path="/" component={App}>
<IndexRoute component={authenticated(Secret)} />
<Route path="/login" component={Login} />
<Route path="/item_1" component={Item1} />
<Route path="/item_2" component={Item2}>
<Route path="/nested_item_2/:id" component={NestedItem2} />
</Route>
</Route>
)
我的 IndexRoute
是一个受保护的组件,所以当我转到 localhost:3000
时,我希望它会将我重定向到 /login
,但没有任何反应。它只是停留在具有空主体的 Secret
组件上。
遇到了同样的问题,并找到了解决方案。您可能也已经找到了它,但它在这里:
您的代码中必须包含此内容才能使重定向生效:
import { createStore, applyMiddleware } from 'redux'
import { browserHistory } from 'react-router'
import { routerMiddleware } from 'react-router-redux'
import rootReducer from './reducers.js'
const middleware = routerMiddleware(browserHistory);
const store = createStore(
rootReducer,
preloadedState,
applyMiddleware(middleware)
);
传递给createStore()
的第三个参数是强制的
我从这个 github topic 中找到了答案,请随时查看更多详细信息。 注意:Ctrl+F:"codereviewvideos" 以获得正确答案;)
希望对您有所帮助!