第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

react 如何實現(xiàn)setInterval每過一秒在html中添加一個div ?

react 如何實現(xiàn)setInterval每過一秒在html中添加一個div ?

慕虎7371278 2019-03-12 17:18:58
react 如何實現(xiàn)setInterval每過一秒在html中添加一個div ?現(xiàn)在有一個需求是要每過幾秒在界面添加一個盒子 之前沒寫過react 函數(shù)應該寫在componentDidMount()里面吧求大佬給個思路~現(xiàn)在實現(xiàn)了 不知道怎么停下來 我是真滴菜
查看完整描述

3 回答

?
尚方寶劍之說

TA貢獻1788條經(jīng)驗 獲得超4個贊

class App extends Component{

        constructor(props){

            super(props);

            this.state={

                arr:[],

                index:0

            }

            this.handle=null;

            this.stopClickHandle=this.stopClickHandle.bind(this);

        }

        stopClickHandle(){

            if(this.handle){

                clearInterval(this.handle);

                this.handle=null;

            }

        }

        componentDidMount(){

            const me=this;

            this.handle=setInterval(function(){

                me.setState(function(preState){

                    let arr=[preState.index++,...preState.arr];

                    return {arr};

                });

                if(me.state.index == me.props.max){

                    me.stopClickHandle();

                }

            },1000);

        }

        render(){

            let arr=this.state.arr;

            arr=arr.map(function(item){

                return (<div>{item}</div>)

            });

            return(

                <div>

                    {arr}

                </div>

            )

        }

    }

    ReactDOM.render(<App max={5} />,document.body);


查看完整回答
反對 回復 2019-03-18
?
慕村225694

TA貢獻1880條經(jīng)驗 獲得超4個贊

import React from "react";

class Clock extends React.Component {

  constructor(props) {

    super(props);

    this.state = {arr:["div"]};

  }


  componentDidMount() {

    this.timeID = setInterval(

      ()=> this.tick(),

      1000

    )

  }


  componentWillUnmount(){

    clearInterval(this.timeID)

  }


  tick() {

    // 5 個 停止計時器

     if(this.state.arr.length ===5) {

      clearInterval(this.timeID);

      return;

    }

     this.setState((prevState,props) => ({

       arr:[...prevState.arr,props.add]

     }))

  }


  render(){

    return (

      this.state.arr.map((item,idx)=> (

         <div>

            <h1>{item}</h1>

         </div>

      ))

    )

  }

}


ReactDOM.render(

  <Clock add={"div"}/>,

  document.getElementById('root')

);

具體可以看下文檔


查看完整回答
反對 回復 2019-03-18
  • 3 回答
  • 0 關注
  • 1559 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號