无法在 v-slider 内的 v-slider-items 上呈现多个图表

cant render multiple charts on v-slider-items inside a v-slider

我正在尝试显示多个图表(来自 chart.js 库),我希望每个图表都在 v-slider-item.

一开始我被告知我的代码不起作用,因为我试图在更新 DOM 元素之前将图表 canvas 附加到 v-slider-item 中,因此v-slider-items 没有渲染,所以我在 this.nextTick()

中执行了图表渲染代码

这样做之后,代码仅呈现 v-slider-item 内的第一个图表,不会呈现其余部分...

这是一个 link 代码笔,显示错误:not rendering v-slider example

作为快速修复,您可以将 eager 属性添加到 <v-carousel-item> 组件。


一个小小的解释:

你的问题是因为 Vuetify 正在使用其组件的延迟加载。所以当页面加载时,DOM 中只存在 第一个图表 的块。在您的代码中,您试图使用 document.getElementById(chart.chartName) 将 link 获取到您的组件。不幸的是,即使使用 $nextTick 方法也不可能 - 只有当您更改轮播活动项目时才会加载第二个或第三个图表。

但是 eager 属性允许您在加载此页面时强制加载所有图表(更准确地说,在 mounted 阶段)。请记住,在生产中这个技巧可能会导致一些性能问题。

也许你最好使用像 vue-chartjs 这样面向框架的库。