react-native - Start a countdown timer with react-natiev
问题描述
I want to have a countdown component for my project. I tried by setting setInterval, but I have a requirement to pause and continue the timer. So How can I achieve this?
解决方案
我创建了一个 jsfiddle,并简单演示了它是如何完成的:https ://jsfiddle.net/69z2wepo/258601/ 。使用 React 编写,但原理与 React Native 完全相同。
class Counter extends React.Component {
constructor(props) {
super(props);
this.state = {
counter: 10,
};
this.interval = null;
this.cleanUp = this.cleanUp.bind(this);
this.decreaseCounter = this.decreaseCounter.bind(this);
this.startCounter = this.startCounter.bind(this);
}
componentWillUnmount() {
cleanUp();
}
cleanUp() {
clearInterval(this.interval);
}
decreaseCounter() {
if (this.state.counter === 0) {
return this.cleanUp();
}
this.setState({counter: this.state.counter - 1});
}
startCounter() {
this.interval = setInterval(this.decreaseCounter, 1000);
}
render() {
return (
<div>
<button onClick={this.startCounter}>Start</button>
Counter {this.state.counter}
<button onClick={this.cleanUp}>Stop</button>
</div>
);
}
}
推荐阅读
- python - 使用 pandas 数据框和聚合函数在 Python 中填写查找表
- macos - 如何编写可以定期激活的脚本以在mac上发送shift键向下和向上消息
- javascript - Material UI 对话框在打开时更改其他组件的样式
- flutter - Flutter - 如何保存和播放录制的音频文件?
- javascript - 查询 select2 版本 3.5.0 错误返回的数据与预期不同
- reactjs - 用于进行休息 api 查询的 Apollo 'Like' 钩子
- c# - (WPF)(MVVM) 我的 ListViewItems 仅在我更改视图时更新
- reactjs - React Quill:如何在所有标签中允许类属性?
- r - 如何使用数据框计算 R 中的时间差
- c# - 为什么除非打开 Outlook,否则 CommandBar 上的 GetPressedMso 函数不会返回正确的按钮状态?