2017-01-19 3 views
0

私は現在のユーザーに関する情報を保持する認証レデューサーを持っているとします。 auth reducerがnullのときに自動的にpopulateUser()アクションを展開する最善の方法はありますが、ローカルストレージに有効なjwtがありますか?リデューサーフィールドがヌルの場合のアクションのデプロイ

+0

あなたは '認証減速がnull'なのであるとはどういう意味ですか? auth reducerの現在のユーザーがヌルであることを意味しましたか? –

+0

混乱して申し訳ありません。はい、それは私が意味するものです。 – jbryant04

+0

あなたはいつでもこのアクションを実行する必要がありますか?ページが十分に読み込まれたときにそれを実行していませんか? –

答えて

1

React-Routerを使用している場合は、 "onEnter"フックを使用して、経路変更が発生するたびにトークンのリクエストヘッダーをチェックするバックエンドルートにajaxリクエストを送信できます。次に、サーバーは関連するユーザーデータを返信します。これにより、状態が更新されます。次のコードは、react-redux、redux-thunkミドルウェア、およびapi要求のアキシャスの使用を前提としています。

<Provider store={store}> 
 
    <Router history={browserHistory}> 
 
     <Route path="/" component={App} onEnter={checkAuth }>  
 
     < children..../> 
 
    </Route> 
 
    </Router> 
 
</Provider> 
 
     
 
function checkAuth(){ 
 
    store.dispatch(authenticate()) 
 
}  
 

 
function authenticate() { 
 
    return function (dispatch) { 
 
    axios.get('/api/auth/') 
 
    .then(user => { 
 
     dispatch(populateUser(user)) 
 
     } 
 
    } 
 
}

関連する問題