iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue使用echarts时created里拿到的数据无法渲染如何解决
  • 208
分享到

vue使用echarts时created里拿到的数据无法渲染如何解决

2023-07-05 16:07:21 208人浏览 独家记忆
摘要

这篇文章主要介绍了Vue使用echarts时created里拿到的数据无法渲染如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue使用echarts时created里拿到的数据无法渲染如何解决文章都会有

这篇文章主要介绍了Vue使用echarts时created里拿到的数据无法渲染如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue使用echarts时created里拿到的数据无法渲染如何解决文章都会有所收获,下面我们一起来看看吧。

    使用echarts时created里拿到的数据无法渲染

    问题描述

    在vue里使用echart时,created里请求的数据,但是却无法渲染;

    代码如下:

    //created里获取数据async created() {    const res = await this.$Http.get('reports/type/1')    this.option.legend.data = res.data.data.series.map((item) => item.name)    console.log('created' + this.option.legend.data)  },//mounted里渲染echart表格 mounted() {    let myChart = this.$echarts.init(this.$refs.myEchart)    this.option && myChart.setOption(this.option)  },

    原因分析 

    通过vue插件调试,数据确实已经拿到了,但是却无法渲染,数据拿到,但是无法渲染,推断应该是执行顺序出了问题,获取的数据在渲染之后才拿到的。 初步怀疑是await的问题,加入验证代码测试一下:

    async created() {    const res = await this.$http.get('reports/type/1')    this.option.legend.data = res.data.data.series.map((item) => item.name)    //打印1    console.log(1)  },   mounted() {    let myChart = this.$echarts.init(this.$refs.myEchart)    this.option && myChart.setOption(this.option)    //打印2    console.log(2)  },

    神奇的一幕出现了,果然和我们想的一样:先执行了mounted()里的函数

    vue使用echarts时created里拿到的数据无法渲染如何解决

    mounted()为什么会打印在created()前面呢?

    让我们来了解一下async/await :await会阻塞其所在表达式中后续表达式的执行(在和await在同一函数内但在await后面的代码会被阻塞,形成类似微任务的存在),但是不会阻碍外部函数的执行!!

    结论:await阻碍了同函数内的代码,整个created函数执行变慢(相当于变成异步),所以mounted先执行,导致数据无法获取;

    解决措施

    将请求放在mounted里

    //正确代码  async mounted() {  //获取数据    const res = await this.$http.get('reports/type/1')    this.option.legend.data = res.data.data.series.map((item) => item.name)    this.option.series = res.data.data.series//渲染    let myChart = this.$echarts.init(this.$refs.myEchart)    this.option && myChart.setOption(this.option)  },

    echarts报错Cannot read property ‘getAttribute‘ of undefined

    今天在查看项目时,发现控制台莫名报错,Cannot read property 'getAttribute' of undefined

    通过查看,问题定位在这一行,也就是echarts初始化的时候: 

    const chart = echarts.init(this.$refs['chart']);

    结合报错信息可以得知,错误原因是因为没获取到dom属性。

    在vue中获取不到dom一般分为两种情况,一是在created中获取,这个时候只是创建了vue实例,dom并没有开始渲染。所以自然拿不到,如果你是在created中初始化echarts,那么你只需要把初始化的方法放到mounted中执行,因为mounted是dom挂载完成的生命周期。这时候顺理成章就可以取到dom。

    另外一种情况就是v-if导致dom没有渲染,接下来咱们看一下html部分:

    <div >    <!-- 暂无数据/加载中组件 -->    <tableLoading border         v-if="!conditionBoxLoading && hostAgentNameList.length === 1">    </tableLoading>    <!-- echarts -->    <div ref="chart"  v-else >    </div></div>

    只需要将v-if / v-else改成v-show就可以了,因为v-if是条件判断是否渲染,v-show是是否显示,所以使用v-show的话即便dom被隐藏,它依然是已经创建完成了,可以获取到。解决方法如下:

    <div >    <!-- 暂无数据/加载中组件 -->    <tableLoading border         v-show="!conditionBoxLoading && hostAgentNameList.length === 1">    </tableLoading>    <!-- echarts -->    <div ref="chart"          v-show="hostAgentNameList.length > 1" >    </div></div>

    关于“vue使用echarts时created里拿到的数据无法渲染如何解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“vue使用echarts时created里拿到的数据无法渲染如何解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

    --结束END--

    本文标题: vue使用echarts时created里拿到的数据无法渲染如何解决

    本文链接: https://www.lsjlt.com/news/353083.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • vue使用echarts时created里拿到的数据无法渲染如何解决
      这篇文章主要介绍了vue使用echarts时created里拿到的数据无法渲染如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue使用echarts时created里拿到的数据无法渲染如何解决文章都会有...
      99+
      2023-07-05
    • vue使用echarts时created里拿到的数据无法渲染的解决
      目录使用echarts时created里拿到的数据无法渲染问题描述原因分析 解决措施echarts报错Cannot read property ‘getAttr...
      99+
      2023-03-24
      vue echarts vue echarts created created数据无法渲染
    • 如何解决uniapp拿到数据不渲染页面问题
      在移动端应用开发中,uniapp以其跨平台特性和高效开发方式,越来越受到广大开发者的关注和青睐。但是,在使用uniapp开发应用时,有时候我们会遇到拿到数据但是无法渲染页面的情况。下面就让我们一起来看看这种情况的解决方法。一、检查数据格式u...
      99+
      2023-05-14
    • vue中动态渲染数据时使用$refs无效的解决
      目录vue动态渲染数据时使用$refs获取dom无法获取问题解决办法vue中$refs取值是undefined总结vue动态渲染数据时使用$refs获取dom无法获取问题 场景:在循...
      99+
      2023-01-28
      vue动态渲染数据 vue使用$refs无效 vue渲染数据
    • 如何解决vue数据渲染出现闪烁的问题
      这篇文章主要介绍了如何解决vue数据渲染出现闪烁的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在使用vue进行数据渲染的时候发现当我不...
      99+
      2024-04-02
    • vue使用iview Timeline 时间轴不显示渲染效果的解决办法
      这期内容当中小编将会给大家带来有关vue使用iview Timeline 时间轴不显示渲染效果的解决办法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。预期的效果是官网代码...
      99+
      2024-04-02
    • vue使用Echarts设置数据无效问题记录及解决方法
      目录场景:遇到的问题:最终解决方案:小结:场景: 做一个动态的柱状图,模拟socket效果,如图所示: 遇到的问题: 元数据格式是这样的: config: { da...
      99+
      2022-11-13
      vue Echarts数据无效 vue设置数据无效
    • 如何解决Vue中引入swiper在数据渲染的时候,发生不滑动的问题
      这篇文章给大家分享的是有关如何解决Vue中引入swiper在数据渲染的时候,发生不滑动的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前几天在工作的过程中,在数据渲染的时候,...
      99+
      2024-04-02
    • 同时使用swiper和echarts遇到的问题如何解决
      今天小编给大家分享一下同时使用swiper和echarts遇到的问题如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。项...
      99+
      2023-07-06
    • 如何解决阿里云数据库无法使用的故障
      阿里云数据库是一款高性能、高可用的云数据库服务,但是有时候用户可能会遇到无法使用的问题。本文将详细介绍如何解决这一问题。 一、问题分析网络问题:检查网络连接是否正常,尝试ping阿里云数据库服务器,看是否有响应。阿里云数据库服务问题:登录阿...
      99+
      2023-12-15
      阿里 如何解决 故障
    • 如何解决神通数据库阿里云无法使用的问
      神通数据库阿里云是一种提供大量数据存储和处理能力的服务,但是在使用过程中可能会遇到各种问题。本文将详细说明如何解决神通数据库阿里云无法使用的问题。 首先,我们需要确定无法使用的原因。可能是由于网络问题、服务故障、权限不足等原因。如果是因为网...
      99+
      2023-12-09
      阿里 神通 如何解决
    • JPA @Query时无法使用limit函数如何解决
      这篇文章主要介绍了JPA @Query时无法使用limit函数如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JPA @Query时无法使用limit函数如何解决文章都会有所收获,下面...
      99+
      2023-06-29
    • 如何解决阿里云数据库无法写入数据的问
      简介:阿里云数据库是一款高效、稳定、安全的云数据库服务,但是有时候在使用过程中可能会遇到无法写入数据的问题。本文将介绍一些常见的原因和解决方法,帮助用户快速解决这个问题。 1. 检查网络连接如果阿里云数据库无法写入数据,首先需要检查网络连接...
      99+
      2023-12-27
      阿里 如何解决 数据库
    • 使用@PathVariable时候无法将参数映射到变量中的解决
      目录使用@PathVariable无法将参数映射到变量中springmvc 使用@PathVariable时,应该注意点什么?一、使用@PathVariable的转变过程首先:请看看...
      99+
      2024-04-02
    • vue的v-for循环重复数据无法添加如何解决
      这篇文章主要介绍了vue的v-for循环重复数据无法添加如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue的v-for循环重复数据无法添加如何解决文章都会有所收获,下面我们一起来看看吧。问题:错误提示...
      99+
      2023-07-04
    • 畅捷通阿里云数据库无法使用的原因及解决方法
      畅捷通是一款广泛应用于企业信息化管理的软件,而阿里云数据库则是用于存储和管理数据的强大工具。然而,有时候用户可能会遇到畅捷通无法使用阿里云数据库的问题。本文将介绍可能的原因,并提供相应的解决方法,帮助用户顺利地使用畅捷通与阿里云数据库。解...
      99+
      2024-01-20
      阿里 解决方法 原因
    • 如何解决阿里云外网FTP服务器无法使用的问
      阿里云外网FTP服务器是一种方便用户上传和下载文件的服务,但是有时候会遇到无法使用的情况。本文将介绍一些常见的问题以及解决方法,帮助用户顺利使用阿里云外网FTP服务器。 1. 确认网络连接是否正常首先,我们需要确认自己的网络连接是否正常。可...
      99+
      2024-01-22
      阿里 如何解决 服务器
    • 如何解决无法使用IP访问阿里云服务器的问
      本文将介绍当无法使用IP访问阿里云服务器时,可以采取的解决方法。无论是因为网络配置问题、防火墙设置、还是其他原因导致无法访问,都将提供相应的解决方案。 详细说明:1. 检查网络配置首先,我们需要确保网络配置正确。在阿里云控制台中,进入云服务...
      99+
      2024-01-19
      阿里 如何解决 服务器
    • 如何解决使用@ManyToMany查询数据时的死循环问题
      本篇内容主要讲解“如何解决使用@ManyToMany查询数据时的死循环问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决使用@ManyToMany查询数据时的死循环问题”吧!使用@Man...
      99+
      2023-06-21
    • 如何解决Win10使用远程协助时鼠标无法点击的问题
      小编给大家分享一下如何解决Win10使用远程协助时鼠标无法点击的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 1、在桌面空白处新建一个文本文档,输...
      99+
      2023-06-27
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作