2017-03-02 17 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にリダイレクトすることを期待していますが、何も起こりません。ヌルボディの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()に渡される3番目の引数は必須

です

私はこのgithub topicからの答えを見つけました。詳細をご覧ください。 NB:Ctrl + F:正しい答えを得るための "codereviewvideos")

希望すると助かります!

+1

Yep!それが私のしたことです。私が投稿したはずの答えを提供してくれてありがとう – Carpetfizz

関連する問題