欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 【已解决】ECharts 没有在页面生效

【已解决】ECharts 没有在页面生效

2025/2/2 13:37:21 来源:https://blog.csdn.net/XiugongHao/article/details/145413553  浏览:    关键词:【已解决】ECharts 没有在页面生效
  1. 元素高度问题

    • ECharts 需要一个具有明确高度的容器来渲染图表,也就是说 echartsRef 元素需要一个明确的 div 高度。我项目中的问题就是在 .base-echarts(我项目中的最外层元素) 上设置了高度为 300px,但没有为 .echarts(echartsRef 元素自身) 设置高度。因此需要给 .echarts 也设置一个明确的高度。
  2. 异步数据加载

    • 如果数据是异步加载的(例如通过 API 请求),那么在 onMounted 中初始化图表时,数据可能还没有准备好。可以使用 watchEffect 或其他方式确保数据加载完成后再次更新图表。
  3. 模板引用未正确获取

    • 确保 useTemplateRef 正确获取到了 DOM 元素。可以使用生命周期钩子 onMounted ,将 echarts 实例的创建写在 onMounted 中 ,确保 echartsRef 已经挂载并正确创建 echarts 实例,也可以添加一个简单的 console.log(echartsRef.value) 来检查是否获取到了正确的 DOM 元素。
  4. 样式冲突或布局问题

    • 检查是否有其他样式或布局影响了 .echarts 的显示。确保该元素没有被隐藏或覆盖。

修改建议

<script setup lang="ts">
import * as echarts from "echarts";
import { useTemplateRef, onMounted, watchEffect } from "vue";const echartsRef = useTemplateRef<HTMLElement>("echartsRef");onMounted(() => {const echartsInstance = echarts.init(echartsRef.value!, "light");const options = {title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]};echartsInstance.setOption(options);
});
</script><template><div class="base-echarts"><div class="echarts" ref="echartsRef"></div></div>
</template><style scoped>
.base-echarts {height: 300px;
}
.echarts {width: 100%;height: 100%; /* 确保 .echarts 也有明确的高度 */
}
</style>

进一步调试

  • onMounted 中添加 console.log(echartsRef.value) 来确认是否正确获取到 DOM 元素。
  • 使用浏览器开发者工具检查 .echarts 元素的实际尺寸和样式,确保它有足够的空间来显示图表。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com