react 简单倒计时
Posted xpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react 简单倒计时相关的知识,希望对你有一定的参考价值。
倒计时组件
import React, { Component } from \'react\'
export default class countDown extends Component {
constructor(props) {
super(props)
this.state = {
second: this.props.value
}
}
componentDidMount () {
this.countDown()
}
componentWillUnmount () {
if (this.timmerId) clearInterval(this.timmerId)
}
componentDidUpdate (preProps) {
if (preProps.value !== this.props.value) {
if (this.timmerId) clearInterval(this.timmerId)
this.setState({
second: this.props.value
}, () => {
this.countDown()
})
}
}
countDown = () => {
this.timmerId = setInterval(() => {
this.setState({
second: this.state.second - 1
}, () => {
if (this.state.second <= 0) {
clearInterval(this.timmerId)
}
})
}, 1000)
}
render() {
return (
<div>
{this.state.second}
</div>
)
}
}
需要手动更新时
1.手动更新key组件重新渲染
<CountDown key={this.state.key} value={this.state.value}/>
2.应该可以使用ref,操作~~~
以上是关于react 简单倒计时的主要内容,如果未能解决你的问题,请参考以下文章
JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段