2016-12-14 15 views
0

次は私の再来 - 佐賀・ジェネレータReduxの-佐賀Reduxの-サンクのアクションを複製

export function* toggleMenu(payload) { 
let transitionDuration; 
let { status } = payload; 
if (!status) { 
    transitionDuration = 500; 
    yield put({ type:types.TOGGLE_MENU, status: 'transitioning' }); 
} else { 
    transitionDuration = 0; 
} 
yield delay(transitionDuration); 
yield put({ type:types.TOGGLE_MENU, status }); 

}

私はそれがredux-で以前働いていこの機能を複製しようとしていますサンクだけど、私はリベンックスサガをやろうとしている。以下は私のレックスサンク機能です。

export const toggleMenu = status => { 
let transitionDuration; 
return dispatch => { 
    if (!status) { 
     transitionDuration = 500; 
     dispatch(menu('transitioning')); 
    } else { 
     transitionDuration = 0; 
    } 
    setTimeout(() => { 
     dispatch(menu(status)); 
    }, transitionDuration); 
}; 

};

私が今問題を抱えているのは、 'transitioning'をディスパッチした後、遅延内で同じアクションで別のディスパッチを行った後に、同期的にタスクを処理できないようです。私はtakeEvery機能で私の仕事を見ました。前もって感謝します!

答えて

0

私は解決策を見つけました。私がループしていたディスパッチと同じアクションを見ていました。私のアクションタイプを別のものに変更すると、期待どおりに動作します。

関連する問題