我想知道是否可以在Redux Store中存储setTimeout并让setTimeout触发偶数。据我了解,动作是javascript对象,但是我不确定它如何与商店交互。
最初我在想这样的事情
const timer = setTimeout(() => {someFunc}, 1000);
动作:
const t = (timer) => {
return {
type:TIMER_START,
timer
}
};
减速器:
tReducer = (state={timer:null}, action) => {
switch(action.type) {
case TIMER_START:
return {...state, timer: action.timer}
default:
return state;
}
};
这是在商店中实施超时的有效方法吗?如果是这样,是否可以取消超时?由于我们需要Redux中的纯函数,因此我不确定是否可以取消超时
答案 0 :(得分:0)
动作必须是纯对象,没有副作用。要调度异步操作,您应该使用自定义中间件,例如redux-saga
或redux-thunk
。使用redux-thunk
进行异步操作的示例:
const storeUsers = () =>{
return dispatch =>{
setTimeOut(() => dispatch({type: 'SENDED_AFTER_3_SECONDS'}), 3000)
}
}