2016-12-22 6 views
2

に移動した後、私は私のアプリのいくつかのルートに移動するにはreact - "Reducersはアクションをディスパッチできません。"ルート

hashHistory.push('/home') 

を使用しています。しかし、私がそれを使用するたびに

Reducers may not dispatch actions. 

このエラーが発生することなく適切な経路にナビゲートするにはどうすればよいですか?あなたはReduxのを使用している。これは、あなたが行動を派遣することができ、それを削減して、ディスパッチされます

https://github.com/gaearon/redux-thunk

https://github.com/reactjs/react-router-redux

を、あなたはサンクミドルウェアを使用することができますし、反応 - ルータ - Reduxのを想定し

+2

あなたのレデューサーのコードでディスパッチがありますか? .pushをどこに呼びますか? –

+0

こんにちは、反応のビットのnoobのために申し訳ありません、これはかなり新しいです 私は減速器の内側から.pushを呼び出しています – user1326293

+2

それはあなたの問題です、反応コンポーネントまたはアクションにプッシュを移動します –

答えて

3

その後の別の操作

import { push } from 'react-router-redux' 

const someAction = (somePayload) => (dispatch, getState) => { 
    dispatch({ 
    type: 'SOME_ACTION', 
    payload: { 
     somePayload 
    } 
    }); 

    // Get the updated state from the store and navigate 
    let { someVar } = getState(); 
    if (someVar === 'some value') { 
    dispatch(push('/home')); 
    } 
}; 


// Call like so 
store.dispatch(someAction()) 

あなたがレヴィクスを使用していない、またはそのルートに行きたくない場合は、あなたが減速機またはそのアクションサイクルの一部にアクションをディスパッチしていない場合

関連する問題