build后无法获取echart的实例
Preyou opened this issue · 13 comments
请确认
- 我可以确认这个问题无法在 ECharts 项目本身中复现。
您是如何将 Vue-ECharts 引入项目的?
通过 ES 模块 import
版本信息
dependencies:
echarts 5.5.0
vue 3.4.27
vue-echarts 6.7.2
问题详情
在dev环境下一切正常,但是build后,无法通过ref获取vueEchart的实例
以下是一个最小复现案例
https://github.com/Preyou/vue-project
分别运行dev,和build后的preview,打开控制台对比输出。
对于以下简单的测试代码
<script setup>
import VueChart from 'vue-echarts'
import {ref} from 'vue'
import HelloWorld from './components/HelloWorld.vue'
const a = ref()
console.log(a);
const b = ref()
console.log(b);
</script>
<template>
<VueChart ref="a"></VueChart>
<HelloWorld ref="b" />
</template>
问题复现
复现代码输出不了你截图的日志吧。
复现代码输出不了你截图的日志吧。
我仓库的代码复现不了吗
复现代码输出不了你截图的日志吧。
两次截图分别是打包前和打包后a的值
b的值是正常的,我就没截图
我仓库的代码复现不了吗
复现不了,你检查一下吧
我仓库的代码复现不了吗
复现不了,你检查一下吧
可以复现啊
我准备了个在线的
https://stackblitz.com/~/github.com/Preyou/vue-project?file=src/App.vue
我仓库的代码复现不了吗
复现不了,你检查一下吧
可以复现啊
我准备了个在线的 https://stackblitz.com/~/github.com/Preyou/vue-project?file=src/App.vue
直接运行 pnpm run preview
再看控制台就可以发现,没有正确的获取实例
mount 以前 ref 的 value
应该是 undefined
吧,你这么写如果能取到值那肯定是因为热更新导致的。这在生产环境肯定不对啊。
mount 以前 ref 的
value
应该是undefined
吧,你这么写如果能取到值那肯定是因为热更新导致的。这在生产环境肯定不对啊。
我这么写是没问题的,我打印的是ref而不是ref.value。而且就算是把log写在onMounted里,一样不行。
我试了一下在 preview 下取到组件实例是没有问题的,你不要看 console 打出来的内容,你试试实际调用实例上的方法看看。