2017-03-02 5 views
2

redux-auth-wrapper을 사용하여 보호 된 경로의 인증을위한 라우팅 논리를 처리하고 있습니다. 그러나 리디렉션되지 않습니다. 상태에서redux-auth-wrapper 리디렉션이 작동하지 않습니다.

내 "사용자"개체는 모양입니다 :

// 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으로 리디렉션 할 것으로 예상되지만 아무 일도 발생하지 않습니다. null body가있는 Secret 구성 요소에 그대로 있습니다.

답변

2

같은 문제가 발생하여 해결 방법을 발견했습니다. 당신은뿐만 아니라 이미 그것을 발견했을 수도 있지만, 여기 간다 :

리디렉션이 작동하려면 당신은 당신의 코드에서이 있어야합니다

:

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에서 답을 찾았으니 자세한 내용을 알아보십시오. NB : Ctrl + F : 올바른 답변을 얻으려는 "codereviewvideos")

희망이 있습니다.

+1

예! 그게 내가 한 짓이야. 게시해야하는 답변을 제공해 주셔서 감사합니다. – Carpetfizz