我想创建一个计时器,该计时器将指示要显示给定持续时间值的闪存消息(“已保存!”),例如: 30秒。
我认为如何使用Redux实现这一目标是这样的:
TIMER_TICK
操作类型都会发送到reducer。timer
。const initialState = {
count: 0,
timerOn: false,
}
const tick = () => ({ type: TIMER_TICK });
let timer = null;
export const startFlashMessageTimer = () => dispatch => {
clearInterval(timer);
timer = setInterval(() => dispatch(tick()), 1000);
}
但我仍然坚持在哪里放置检查是否达到计数值的逻辑(在这种情况下为30)。有任何建议我如何/在哪里解决这个问题?
答案 0 :(得分:1)
这样的东西?
export const startFlashMessageTimer = () => (dispatch, getState) => {
let timer = null;
clearInterval(timer);
timer = setInterval(() => {
dispatch(tick());
const { count } = getState();
if (count >= 5) { clearInterval(timer) }
}, 1000);
}