账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue2里echarts不能正常显示
    61
    0
    echart写在一个对话框里,然后下面这句就是报错,写了各种方式都取不到his.$refs.myEchart2应该是页面渲染没好的感觉。let myChart = echarts.init(this.$refs.myEchart2);以下是完整代码<template> <div class="hello"> <button @click="selectTag(1,1)">1111</button> <el-dialog title="概况" class="myD" :visible.sync="dialogVisible2" width="60%"> <span slot="title"><b class="myD-title"><i class="el-icon-data-analysis"></i> 概况</b> </span> <span slot> <p style="text-align: left;font-size: 30px;">{{map.description}}</p> <div> <el-row :gutter="20"> <el-col :span="12"> <el-card header="车辆类型统计" style="font-weight: bold;"> <div ref="myEchart1" style="height: 350px;"> </div> </el-card> </el-col> <el-col :span="12"> <el-card header="车辆出租状态统计" style="font-weight: bold;"> //echart要再这里显示 <div ref="myEchart2" id="mychart3" style="height: 350px;"> </div> </el-card> </el-col> </el-row> </div> </span> <span slot="footer" class="dialog-footer"> <el-button class="myDB" type="primary" @click="dialogVisible2 = false">关 闭</el-button> </span> </el-dialog> </div></template><script> var echarts = require('echarts'); export default { name: 'ok', props: { msg2: Array }, data() { return { //changValue: 0, tag_cat: [], dialogVisible2: false, nowWidth: 30, nowHeight: 30, nowIndex: 0, tagAll: [], map: { id: 'ID', description: '描述', }, }; }, created() { }, mounted() { ///////////////////////// // 下面主要测试代码 // //////////////////////// //1.这样写拿不到this.$refs setTimeout(() => { console.log(this.$refs.myEchart2) }, 10000); //2.这样写拿不到this.$refs console.log(this.$refs.myEchart2); this.$nextTick(() => { //3.这样写拿不到this.$refs console.log(this.$refs.myEchart2); let myChart = echarts.init(this.$refs.myEchart2); let option = { tooltip: { trigger: 'item', formatter: '{a} <br/>{b} : {c} ({d}%)' }, legend: { bottom: 10, left: 'center', data: ['已出租', '未出租', '已预约'] }, series: [{ name: '车辆出租状态', type: 'pie', radius: '55%', center: ['50%', '40%'], data: [{ value: 11, name: '已出租' }, { value: 22, name: '未出租' }, { value: 33, name: '已预约' } ], emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } }] }; myChart.setOption(option); }); }, watch: {}, methods: { selectTag(did, type) { if (type == '1') { this.dialogVisible2 = true; this.$options.methods.selectMap(did, type, this); } }, selectMap: function(e, type, that) { this.dialogVisible2 = true; }, }, }</script><style scoped></style>补充一点:是首次打开页面的时候显示不了
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 肥鲇鱼 普通会员 1楼

      在 Vue 2 中,ECharts 不是默认的图表库。如果你在 Vue 2 中尝试使用 ECharts,可能会出现以下问题:

      1. 引入问题:在 Vue 2 中,你需要在你的组件中引入 ECharts,而不是使用它作为全局组件。这通常可以通过在你的 index.js 文件中添加以下代码来实现:

      javascript import echarts from 'echarts';

      1. 设置问题:ECharts 的配置可能需要在 app.jspages/index.vue 文件中进行设置。你需要确保在设置图表选项时包含了图表库的名称。例如:

      ```javascript import ECharts from 'echarts'; import 'echarts/dist/echarts.css'; import myChart from './components/myChart.vue';

      // 在 app.js 中设置 ECharts window.onload = function () { ECharts.use('echarts').init(document.getElementById('container')); }; ```

      1. 安装问题:如果你在尝试安装 ECharts,但仍然无法正常显示,你可能需要检查你的npm包是否正确安装。你可以使用以下命令进行检查:

      bash npm list echarts

      如果 echarts 没有在你的 node_modules 文件夹中,你需要先将其添加到你的项目中。

      1. 环境问题:ECharts 需要一个支持其使用的 JavaScript 引擎。在 Vue 2 中,你需要确保你的项目使用的是 Node.js。如果使用的是其他引擎,ECharts 可能无法正常工作。

      2. 组件问题:如果你的组件没有正确引入 ECharts,或者 ECharts 在组件中无法正常渲染,你可能需要检查你的组件的代码。确保你的组件已经正确引入了 ECharts,并且 ECharts 在组件中已经正确渲染。

      如果你仍然无法解决这些问题,你可能需要寻求 Vue.js 的社区帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部