redux身份验证包装重定向不工作

redux身份验证包装重定向不工作,redux,react-router,react-router-redux,Redux,React Router,React Router Redux,我正在使用来处理路由逻辑,以便对受保护的路由进行身份验证。但是,它不是重定向 状态中的“用户”对象的形状为: // state.auth { isAuthenticated: true, isLoading: false, loadError: null } 这是我的routes/index.js文件 const authenticated = UserAuthWrapper({ authSelector: state => state.auth,

我正在使用来处理路由逻辑,以便对受保护的路由进行身份验证。但是,它不是重定向

状态中的“用户”对象的形状为:

// 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>
)
const authenticated=UserAuthWrapper({
authSelector:state=>state.auth,
谓词:authData=>authData.isAuthenticated,
重定向操作:routerActions.replace,
//默认情况下重定向到/登录
})
导出默认值(
)

我的
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()
的第三个参数是必需的

我从中找到了答案,请随意查看更多细节。 注意:Ctrl+F:“codereviewvideos”以获得正确答案;)


希望有帮助

是的!我就是这么做的。谢谢你提供了我应该发布的答案