具有理想型 2023-01-05 16:36 采纳率: 100%
浏览 136
已结题

vue3中使用echarts数据已经拿到,但是图表显示不出来

vue3和echarts,使用后台数据进行渲染,图表不显示,但是当数据写死时就,图表就会显示

mounted() {
    this.load()
    this.echarts1();
  },
  watch:{
    data:{
      handler(newVal,oldVal){
        this.echarts1();
        console.log(newVal,oldVal)
      },
      deep:true,
    }
  },
 methods: {
    echarts1() {
      let chartDom = document.getElementById("echarts1");
      let myChart = echarts.init(chartDom);
      let option;
      let teachingReward = [];
      request({
        url: '/all/number',
        headers: {
          isToken: true
        },
        timeout: 20000,
        method: 'get',
      }).then((res) => {
        for (let i = 0; i < 11; i++) {
          this.teachingReward[i] = res.data.items[i];
        }
        console.log(this.teachingReward);
        teachingReward = this.teachingReward;
        option = {
          title: {
            text: "",
            textStyle: {
              color: "#000"
            }
          },
          tooltip: {
            trigger: 'axis',
            axisPointer: { // 坐标轴指示器,坐标轴触发有效
              type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
            }
          },
          toolbox: {
            feature: {
              saveAsImage: {}
            }
          },
          xAxis: [{
            name: '项目',
            type: 'category',
            axisLabel: {
              fontSize: 12
            },
            data: ['学术论文', '纵向项目', '横向项目', '专利', '软件著作权', '科研成果奖励', '教学成果奖励', '出版刊物', '学科竞赛', '参加会议', '成果转化']
          }],
          yAxis: [{
            type: 'value',
            name: '数量',
            axisLabel: {
              fontSize: 18
            },
          },],
          series: [{
            name: '',
            type: 'bar',
            label: {
              show: true,
              fontSize: 18,
              color: '#000',
              position: 'top'
            },
            data: teachingReward
          },
          ]
        };
      })
      option && myChart.setOption(option);
    }
  }

这是我运行的结果和控制台打印的数据

img

img


img

有使用debugger进行测试,看到teachingReward是有拿到数据的,但是不知道为啥显示不出来。有尝试过很多种办法,比如像网上那样加watch监听,也还是不行
  • 写回答

6条回答 默认 最新

  • qq_57709716 2023-01-05 16:55
    关注

    试试option.series[0].data = this.teachingReward

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行