1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| import React, { Component } from "react"; import Ball from "./Ball"; import { getRandomNumber } from "../utils/Random"; export default class BallList extends Component { constructor(props) { super(props); this.state = { ballInfos: [], }; const interval = 1000; const timer = setInterval(() => { const info = { radius: getRandomNumber(50, 200), left: getRandomNumber( 0, document.documentElement.clientWidth - this.radius ), top: getRandomNumber( 0, document.documentElement.clientHeight - this.radius ), xSpeed: getRandomNumber(50, 500), ySpeed: getRandomNumber(50, 500), bg: `rgb( ${getRandomNumber(0, 255)}, ${getRandomNumber(0, 255)}, ${getRandomNumber(0, 255)})`, }; this.setState({ ballInfos: [...this.state.ballInfos, info], }); console.log(this.state.ballInfos.length); if (this.state.ballInfos.length >= 15) clearInterval(timer); }, interval); } render() { const balls = this.state.ballInfos.map((item, i) => ( <Ball key={i} {...item} /> )); return <>{balls}</>; } }
|