2017-01-31 21 views
0

私は、イベントベースのreact/reduxアプリケーションに機能を追加する必要があります。React Reduxのステートレスイベントリスナー

私はreduxを使用しています。私は、アクションを通じてイベントのアプリケーション状態を変更するレデューサーを持っています。たとえば、(USER_CLICKED_BUTTON、AJAX_CALL_STARTED、AJAX_CALL_ERROR、AJAX_CALL_SUCCESS)

これらのイベントにリスナーを追加し、状態に関係のない作業、具体的にはアナリティクスのような別のAPIを呼び出したいとします。

は、それ(?例えば、コールGA(...)のために)単にこれらのアクションとの行為に耳を傾けていること、ない本当の状態で別の「減速」を追加しても意味が

このようなものをい

var Actions = require ('../actions/actionTypes'); 

var gaReducer = function(state, action) { 
    switch (action.type){ 
     case Actions.USER_CLICKED_BUTTON: 
       ga('send', 'event', 'user-clicked-button'); 
       break; 
    } 

    return state; 

} 

答えて

1

これはミドルウェアの場合のように聞こえます。例としてhttps://github.com/evgenyrodionov/redux-loggerをご覧ください。 https://github.com/ezekielchentnik/:

const middleware = [ 
    myAnalyticsMiddleware() 
]; 

export default createStore(reducer, applyMiddleware(...middleware)); 
+0

[OK]を、これは正しい方向に私を送ったが、これはより多くの私が探しているもののように、おそらくです:

次に、あなたの店は、次のようになりますレプレックスレポーター。 – NiRR

+0

また、この例が私の問題にどのように当てはまるのかわかりません。 – NiRR

+0

この例は、ストアにフックして、ストアが変更されたときに何かを実行するため(この場合、ログは解析を送信するため)、適用されます。 – meleyal