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 简单倒计时的主要内容,如果未能解决你的问题,请参考以下文章

react 简单倒计时

react中简单倒计时跳转

python使用上下文对代码片段进行计时,非装饰器

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

react 写 倒计时功能

如何在使用片段和计时器的选项卡式活动上更新 UI