首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算属性作为对vue-chartjs的反应?

计算属性作为对vue-chartjs的反应?
EN

Stack Overflow用户
提问于 2017-11-01 19:40:37
回答 1查看 1.3K关注 0票数 2

我想弄清楚这段代码到底出了什么问题。总之,我有一个vuejs组件,它希望将数据传递给vue-chartjs图表组件。下面是vue-chartjs文档中的示例,如下所示:

Parent.vue

代码语言:javascript
复制
<template>
      <line-canvas :chart-data="displaydatacollection"></line-canvas>
<template>

<script>
import LineCanvas from './LineCanvas'

export default () {
  components: LineCanvas,
  computed: {
    toDisplay () {
      // complicated function that returns something like
      //  [ { date: '2017-09-01T10:30:00Z', count: 12345 }, ... ]
    },
    displaylabels () {
      return this.toDisplay.map(elem => {
        return elem.date
      })
    },
    displaydata () {
      return this.toDisplay.map(elem => {
        return elem.count
      })
    },
    displaydatacollection () {
      return {
        labels: this.displaylabels,
        datasets: [
          {
            label: 'Cumulative',
            borderColor: '#00bfff',
            yAxisID: 'Cumulative',
            fill: false,
            pointRadius: 0,
            data: this.displaydata
          }
        ]
      }
    }
  }
}
</script>

LineCanvas.js

代码语言:javascript
复制
import { Line, mixins } from 'vue-chartjs'

export default {
  extends: Line,
  mixins: [mixins.reactiveProp],
  mounted () {
    this.renderChart(this.chartData)
  }
}

(以上代码是一系列主题变体中的最新代码,但这似乎是最接近于实际绘制图表的代码。)

当我在dev服务器上运行我的代码时,我会得到以下控制台错误:

TypeError: Cannot read property 'getBasePixel' of undefined at ChartElement.updateElement

Uncaught TypeError: Cannot read property 'skip' of undefined at ChartElement.draw

请注意,为了更忠实于这个示例,我尝试过的其他解决方案之一是使toDisplay成为一个数据字段,并将一个watch方法添加到从该字段导出的重新计算toDisplay的字段中,但结果是相同的。我的预感是,当reactiveProp传递给图表组件(因此成为post的标题)时,它与使用计算属性有关,但不确定这一点。有人能指出我做错了什么,为什么错了,并给出一些关于如何修复这个代码的线索吗?

-vue诉2.5.2 -vue-chartjs诉3.0.0 -chart.js v 2.7.0 -npm v 5.5.1

更新:

好的,在进一步讨论这个问题之后,我已经将问题隔离为yAxisID: 'Cumulative'。这一行使一张图表呈现得很愉快,而另一张图表则呈现得很好。奇怪,因为这个属性是该起作用 for Chart.js >v2.2。

EN

回答 1

Stack Overflow用户

发布于 2018-05-01 07:53:42

我也会犯同样的错误。我最终意识到,我在稍微错误的地方定义了轴线的ID。我们需要看看图表选项,看看是否是相同的根本原因。

您的轴选项应该如下所示:

代码语言:javascript
复制
  scales: {
    yAxes: [{
      id: 'Cumulative'
    }]
  }

如果他们不这样做,你很可能会看到上面的错误。

一个更丑的修复方法是更改数据集中的轴标签,以匹配缺省值,例如put yAxisID: 'y-axis-1'.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47062470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档