美文网首页
React_遇到的图表问题

React_遇到的图表问题

作者: coderhzc | 来源:发表于2022-01-12 11:17 被阅读0次

一.昨天在对接图表的时候数据取到了,赋值也没问题就是出来不了

解决的完整代码如下

import React, { Component } from "react";
import styles from "./index.module.scss";
import Echarts from "@components/Echarts";
import { home, homelist } from "@services/home/home";
export default class Home extends Component {
  state = {
    options: null,
    tabType: 1,
    lineObj: {},
    tableLoading: false,
  };

  componentDidMount() {
    this.getList();
    this.getChartData(1);
  }
  // 头部数据请求
  getList() {
    home().then((res) => {
      let {
        data: { data },
      } = res;
      this.setState({
        lineObj: data,
      });
    });
  }
  // 图表数据请求
  tabChange(num) {
    this.setState(
      {
        tabType: num,
      },
      () => {
        this.getChartData(this.state.tabType);
      }
    );
  }

  getChartData(num) {
    homelist({ is_week: num ? true : false }).then((res) => {
      console.log(res);
      let {
        data: { data },
      } = res;
      let XData = [],
        YData = [];
      for (let index = 0; index < data.length; index++) {
        const element = data[index];
        XData.push({ daydate: element.daydate });
        YData.push({ total: element.total });
      }
      let XNewData = XData.map((item) => item.daydate);
      let YNewData = YData.map((item) => item.total);
      console.log(YNewData);
      let chartObj = {
        grid: {
          left: 50,
          right: 0,
        },
        dataZoom: [
          {
            type: "inside",
            start: 5,
            end: 95,
          },
          {
            start: 5,
            end: 95,
          },
        ],
        xAxis: {
          type: "category",
          axisTick: {
            show: false,
          },
          axisLine: {
            lineStyle: {
              color: "#E3E8F4",
            },
          },
          axisLabel: {
            color: "#1D263D",
            interval: 0,
            rotate: this.state.tabType ? 0 : 40,
            padding: [30, 0, 0, 0],
            showMinLabel: true, //显示最小值
            showMaxLabel: true, //显示最大值
          },
          data: XNewData,
        },
        yAxis: {
          type: "value",
          splitLine: {
            lineStyle: {
              color: "#E3E8F4",
            },
          },
          axisLabel: {
            color: "#26BE3A",
          },
        },
        series: [
          {
            data: YNewData,
            type: "bar",
            barWidth: 35,
            itemStyle: {
              color: "#2C9EE0",
              borderRadius: 4,
            },
          },
        ],
      };
      this.setState(
        {
          options: null,
        },
        () => {
          this.setState({
            options: chartObj,
          });
        }
      );
    });
  }
  render() {
    const { options, tabType, lineObj, tableLoading } = this.state;
    return (
      <div className={styles["home-container"]}>
        <div className={styles["container-t"]}>
          <div className={styles["count-list"]}>
            <span>用户总数</span>
            <span>
              <i>{lineObj.total_user}</i>人
            </span>
            <span>{lineObj.yes_add_user}(昨日新增)</span>
          </div>
          {/* <div className={styles["count-list"]}>
            <span>总收益</span>
            <span>
              <i>10000</i>¥
            </span>
            <span>+200(昨日新增)</span>
          </div> */}
          <div className={styles["count-list"]}>
            <span>今日在线</span>
            <span>
              <i>{lineObj.online_user}</i>人
            </span>
            <span>{lineObj.yes_add_line_user}(昨日新增)</span>
          </div>
          <div className={styles["count-list"]}>
            <span>手机端下载</span>
            <span>
              <i>{lineObj.total_mb_download}</i>人
            </span>
            <span>{lineObj.yes_add_mb_download}(昨日新增)</span>
          </div>
          <div className={styles["count-list"]}>
            <span>PC端下载</span>
            <span>
              <i>{lineObj.total_pc_download}</i>人
            </span>
            <span>{lineObj.yes_add_pc_download}(昨日新增)</span>
          </div>
        </div>
        <div className={styles["container-b"]}>
          <div className={styles["tab-box"]}>
            <span>用户分析</span>
            <div>
              <span
                className={tabType === 1 ? styles["active"] : ""}
                onClick={() => this.tabChange(1)}
              >
                本周
              </span>
              <span
                className={tabType === 0 ? styles["active"] : ""}
                onClick={() => this.tabChange(0)}
              >
                本月
              </span>
            </div>
            <div>
              {/* <span>用户人数</span>
              <span>收益</span> */}
            </div>
          </div>
          {options && (
            <Echarts
              options={options}
              width="100%"
              height={573}
              loading={tableLoading}
            />
          )}
        </div>
      </div>
    );
  }
}

实际截图

image.png

二.在切换本周 本月的时候发现数据一直都是本周的

实际截图

image.png image.png

相关文章

  • React_遇到的图表问题

    一.昨天在对接图表的时候数据取到了,赋值也没问题就是出来不了 解决的完整代码如下 实际截图 二.在切换本周 本月的...

  • 最强React精讲教程+源码,资源地址⬇️

    React_模块化,组件化介绍.avi React_hello React.avi React_虚拟DOM对象, ...

  • echarts相关问题总结

    问题一, 如何调整图表的位置 写图表的时候会遇到,图表不充满给的区域如下图 解决:在option里加上grid配置...

  • 关于Excel图表跟随关联数据无限更新问题

    在工作中,经常会遇到关于Excel图表制作问题,但是,普通的图表只能根据选中的关联数据进行图表的更新,但是当数据不...

  • 蚂蚁金服_F2图表

    使用场景:h5端需要图表 数据较多需要图表平移 遇到的问题 引入手势滑动组件 浏览器报错 'interaction...

  • echarts自适应

    一、图表变形 使用Echarts绘制图表时,可能会遇到变形的问题。如下图:【变形图】其原因是Echarts在初始化...

  • Echarts图表变形与自适应解决方案

    一、图表变形 使用Echarts绘制图表时,可能会遇到变形的问题。如下图:【变形图】其原因是Echarts在初始化...

  • 为什么你的数据总是计数?

    刚开始学习PowerBI时,不少人做个简单的图表都会遇到问题,比如将数据字段拖入到图表中,却显示不出来这个数据,而...

  • 关于使用第三方控件那些事

    今天所遇到的问题,传过去的数据类型错误导致图表不显示!!!※这个第三方绘制图表,传数据类似tableview,有d...

  • React_新手入门

    React_轻松安装 (跟着小陈,带你玩转React) (热门的三大框架:Angular、React、Vue ) ...

网友评论

      本文标题:React_遇到的图表问题

      本文链接:https://www.haomeiwen.com/subject/ruxwcrtx.html