我一直在开发反应本机应用,并与redux结合使用。我已经成功实施了优惠券系统。我想实现的是,我想在3秒钟至少继续采取一定的动作。
这是动作:
export const onAcceptingCoupon = (value) => {
return(dispatch) => {
setTimeout(() => {
dispatch({ type: APPLY_BUTTON_LOADING, payload: true });
}, 50000);
dispatch({ type: DISCOUNTED_PRICE, payload: value });
dispatch({ type: APPLY_BUTTON_LOADING, payload: false });
}
};
所以,我一直在使用React Native Elements按钮。通过它具有加载选项,该选项将在按钮文本的前面显示一个加载程序。因此,问题是当我按上面的按钮上提到的操作时。
由于我需要的数据已被获取,因此我只想加载器活动3秒钟。这样,用户可以理解正在发生某些事情。
所以,我尝试使用Settimeout,但什么也没有发生。它刚刚移至下一个派遣。
如何手动停止调度转到下一个派遣,直到一秒钟?
我认为您的订单有些混乱。您需要先启动加载,然后在一段时间后停止加载器。也许将订单更改为此将使您获得更多成功。
export const onAcceptingCoupon = (value) => {
return(dispatch) => {
// show the loader
dispatch({ type: APPLY_BUTTON_LOADING, payload: true });
// put the code that should execute after 50000 inside the setTimeout
setTimeout(() => {
dispatch({ type: DISCOUNTED_PRICE, payload: value });
dispatch({ type: APPLY_BUTTON_LOADING, payload: false });
}, 50000);
}
};
setTimeout
没有阻止,在正常执行后编写的代码。它只是在时间段通过后导致超时的代码执行。