2016-12-09 3 views
0

reduxでは、ミドルウェアを簡単に作成できます。私はこのようなものを持っています。これは私の店全体に適用しやすいものです。1つのストアにミドルウェアを適用する

function socketMiddleware(store) { 
    const socket = io.connect(SOCKET_URL); 
    socket.on('connect',() => store.dispatch({ type: CONNECTED })); 

    return next => action => { 
    // does something with the socket. 
    } 
} 

はしかし、私は唯一のアクションは、その減速を更新している派遣されるたびに私の店では、単一の減速、上で動作するミドルウェアを提供したいです。つまり:

export default wrapWithMiddleware((state = INITIAL_STATE, action) => { 
    switch (action.type) { 
    default: 
     return state; 
    } 
}) 

これは還元剤で可能ですか?

+0

すべてのアクションはミドルウェアを通って流れますが、接続しているかどうかにかかわらず、すべてのアクションはすべてのリデューサーを通過するため、理にかなっていません。 – Alexander

答えて

2

ミドルウェアは、何らかの理由でミドルウェアが何らかの理由でミドルウェアによってエンドポイント(レデューサー)に到達する前に、すべてのリクエスト(この場合はアクション)を処理します。

ミドルウェアが何らかの形であなたの行動を識別できるようにする必要があります。たとえば、redux-thunkは、アクションが機能であるかどうかを確認してアクションを識別し、redux-formはアクションタイプ(@REDUX_FORM/YOUR_ACTION_NAMEの行にあるもの)に接頭辞を使用します。これはミドルウェアの目的に反してしまうので、あなたが考えるべき方法です。

関連する問題