ハンドラで複数の(同期的な)アクションを1つずつディスパッチするのは悪い考えですか?複数のアクションを反応させる/還元する
ボタンA、ボタンB、ボタンCの3つのボタンがあるとします。
私の最初の減速のために、次のようになりますので、クリックされたボタンを知ることが重要である:
const firstReducer = function(state = [], action){
switch(action.type) {
case types.BUTTON_A_CLICKED:
console.log("button a was clicked");
return state.concat("a");
case types.BUTTON_B_CLICKED:
console.log("button b was clicked");
return state.concat("b");
case types.BUTTON_C_CLICKED:
console.log("button c was clicked");
return state.concat("c");
default:
return state;
}
}
が、私の第二減速だけでボタンがクリックされたときに知りたい(気にしませんボタン)。
const secondReducer = function(state = [], action){
switch(action.type) {
case types.BUTTON_A_CLICKED:
case types.BUTTON_B_CLICKED
case types.BUTTON_B_CLICKED
console.log("some button was clicked");
return state.concat("button");
default:
return state;
}
}
私は1000のボタンを持っていますか?私は、これは
const secondReducer = function(state = [], action){
switch(action.type) {
case types.BUTTON_CLICKED:
console.log("some button was clicked");
return state.concat("button");
default:
return state;
}
}
とハンドラ派遣から、すべてのボタンのクリックのための2つのアクションを?:ように私の第二減速が見えるようにすることができ、 特定のボタン(BUTTON_A_CLICKED) と一つの一般的に1つ(BUTTON_CLICKED)
当然のonClickHandler(){
dispatch({
type: ACTION_TYPES.BUTTON_A_CLICKED,
});
dispatch({
type: ACTION_TYPES.BUTTON_CLICKED,
});
この愚かな例であり、私はちょうどBUTTON_CLICKEDと、ボタンがクリックされたアクションデータ送信中と任意の減速は、その情報に興味がある場合に派遣することができます - それは、アクションからそれを取ることができOBJ ..
私が実行したすべてのグーグルでは、還元サンク、またはサガを見ると言われていますが、なぜ私が示唆したことをするのは悪い考えです。
ありがとうございました。
ので、私はいつか再来-サンクに入る必要がありますね、と思われます。ありがとう。 – JimmyBoy
redux-thunkでは、特別な種類のアクションを関数として扱うことができます。つまり、特定のアクション関連のロジックでプレーンアクションを拡張できます。他のアクションに関連するアクションをディスパッチする必要がある場合の例は、リベンックス・サンク(または同様のパッケージ)の優れた使用例です。 – biofractal