import React, { Component } from 'react'; import Charts from '../Charts'; import { Statistic } from 'antd'; import styles from './index.less'; const { MiniArea } = Charts; function fixedZero(val: number) { return val * 1 < 10 ? `0${val}` : val; } function getActiveData() { const activeData = []; for (let i = 0; i < 24; i += 1) { activeData.push({ x: `${fixedZero(i)}:00`, y: Math.floor(Math.random() * 200) + i * 50, }); } return activeData; } export default class ActiveChart extends Component { state = { activeData: getActiveData(), }; componentDidMount() { this.loopData(); } timer: number | undefined; requestRef: number | undefined; componentWillUnmount() { clearTimeout(this.timer); if (this.requestRef) { cancelAnimationFrame(this.requestRef); } } loopData = () => { this.requestRef = requestAnimationFrame(() => { this.timer = window.setTimeout(() => { this.setState( { activeData: getActiveData(), }, () => { this.loopData(); } ); }, 1000); }); }; render() { const { activeData = [] } = this.state; return (
{[...activeData].sort()[activeData.length - 1].y + 200} 亿元
{[...activeData].sort()[Math.floor(activeData.length / 2)].y} 亿元