以下是我的redux-saga发电机
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-thunk上工作但是我试图给予redux-saga一个去。以下是我以前的redux-thunk函数
export const toggleMenu = status => {
let transitionDuration;
return dispatch => {
if (!status) {
transitionDuration = 500;
dispatch(menu('transitioning'));
} else {
transitionDuration = 0;
}
setTimeout(() => {
dispatch(menu(status));
}, transitionDuration);
};
};
我现在遇到的问题是redux-saga似乎无法在调度'转换后同步处理任务。然后在延迟内进行另一次具有相同操作的调度。我在takeEvery功能上观察了我的任务。提前谢谢!
答案 0 :(得分:0)
好的,我找到了解决方案,我正在观看我调度的相同动作,这让我陷入了一个循环。将我的操作类型更改为另一个,它按预期工作。