2017-11-25 9 views
0

Redux + React(とES6)が私に負担をかけている限り、完全な初心者です。すべての配管設備が整備されており、私の状態はすべて更新されていますが、まだ少し混乱しています。チュートリアル、から始まり Reduxののいずれかのアクションと一緒に、以下: Reduxがアクションの戻り関数にディスパッチを渡すのはなぜですか?

export function getApiData(){ 
 
     return(dispatch) => {return(dispatch) => { -some other actions here- } 
 
}

この関数は、APIからデータを取得し、それはまたgetApiDataRequestedとGetApiData成功アクションをディスパッチするが、上記し私には意味をなさない。ディスパッチはRedux状態を更新する意図を示していますが、ディスパッチはなぜreturn関数のパラメータとして渡されるのでしょうか?

乾杯!

+0

ザッツES6矢印機能、その発送を返さない、その行動は完璧な理にかなって – Jeffin

答えて

2

Redux-thunkを使用した非同期アクションの例ですからです。 このミドルウェアを見ると、あなたのアクションが関数かどうかをチェックし、そうであれば返された関数にディスパッチを渡します。あなたはreduxでアクションを呼び出すことはできません。常にディスパッチする必要があります。そのため、ディスパッチオブジェクトを使用してアクションを呼び出す必要があります。

function createThunkMiddleware(extraArgument) { 
    return ({ dispatch, getState }) => next => action => { 
    if (typeof action === 'function') { 
     return action(dispatch, getState, extraArgument); 
    } 

    return next(action); 
    }; 
} 

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

+0

ああ、どうなるananymous機能への実際の送信を派遣。この特定のgetApiData関数は文字通りその中の他の関数をディスパッチするため、ディスパッチ関数にアクセスするにはディスパッチパラメータが必要です。私はそのつながりをしなかったとは信じられません。 –

関連する問題