2017-06-12 16 views
0

Redux-thunkでは、アクションではなく関数を返すアクションクリエータを作成できます。内部関数は、ストア・メソッドdispatchおよびgetStateをパラメータとして受け取ります。 mapDispatchToPropsが既にある場合、redux-thunkが必要な理由

function incrementAsync() { 
    return (dispatch, getState) => { 
    setTimeout(() => { 
     dispatch(increment()); 
    }, 1000); 
    }; 
} 

しかし同時に、反応-Reduxの」 connectはすでに、彼らが直接起動することができるので、ディスパッチコールにアクションの作成者をラップするために使用することができます mapDispatchToProps引数を持っています。 mapDispatchToPropsを使用すると、すでに実行できます。

const mapDispatchToProps = (dispatch) => ({ 
    incrementAsync:() => { 
    setTimeout(() => { 
     dispatch(increment()); 
    }, 1000); 
    } 
}); 
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent) 

私の目では、同じことがredux-thunkなしで達成できます。なぜ私たちは最初に余裕サンクライブラリを持っていますか?私はredux-thunkがかなり普及しているライブラリなので、私はそれを見逃していると確信しています。

答えて

0

簡潔に言えば、あなたのソリューションはまったく問題ありません。

サンク・ミドルウェアを使用する利便性は、アクション作成者が非同期でも非同期でも呼び出すことができると考えています。つまり、ディスパッチ関数を渡す必要はありません。あなたが送出するものが関数であるときはいつも、それを返す関数にディスパッチが注入されます。要約すると、redux-thunkを使用することで、アクションクリエーターを構成可能にします。

こちらをご覧ダンAbramovs詳細な回答:How to dispatch a Redux action with a timeout?

はまたちょうどredux-thunk codeを見て、私はこのことを理解して助けました。

関連する問題