按时间限制模态的最佳实践
Best practice to limit modal by time
我正在用 React Native 构建一个简单的测验应用程序。当用户得到正确答案时,我想显示一个显示 'Congratz' 的弹出模式(React Native Elements)。我的工作方式如下:
<Overlay isVisible={{this.props.showModal}}>
<Text>Congratz</Text>
</Overlay>
其中,showModal 是通过我的 Redux 和 Redux Thunk 操作中的调度设置的。但是,我想将其限制为只显示 2 秒然后消失。实现此目标的最佳做法是什么?
目前我的 thunk 动作是:
export const showModal = () => {
return (dispatch, getState) => {
dispatch({ type: "SHOW_MODAL" });
var start = new Date().getTime();
var end = start;
while (end < start + 2000) {
end = new Date().getTime();
}
dispatch({ type: "HIDE_MODAL" });
};
};
但这会使系统锁定 2 秒?
我将使用简单的 setTimeout
函数来调度 HIDE_MODAL
调度后 SHOW_MODAL
。
dispatch({ type: "SHOW_MODAL" });
setTimeout(() => dispatch({ type: "HIDE_MODAL" }), 2000);
我正在用 React Native 构建一个简单的测验应用程序。当用户得到正确答案时,我想显示一个显示 'Congratz' 的弹出模式(React Native Elements)。我的工作方式如下:
<Overlay isVisible={{this.props.showModal}}>
<Text>Congratz</Text>
</Overlay>
其中,showModal 是通过我的 Redux 和 Redux Thunk 操作中的调度设置的。但是,我想将其限制为只显示 2 秒然后消失。实现此目标的最佳做法是什么?
目前我的 thunk 动作是:
export const showModal = () => {
return (dispatch, getState) => {
dispatch({ type: "SHOW_MODAL" });
var start = new Date().getTime();
var end = start;
while (end < start + 2000) {
end = new Date().getTime();
}
dispatch({ type: "HIDE_MODAL" });
};
};
但这会使系统锁定 2 秒?
我将使用简单的 setTimeout
函数来调度 HIDE_MODAL
调度后 SHOW_MODAL
。
dispatch({ type: "SHOW_MODAL" });
setTimeout(() => dispatch({ type: "HIDE_MODAL" }), 2000);