vue.js - 属性 'renderChart' 在类型 'LineChartComponent' 上不存在

标签 vue.js charts vue-component typescript-typings

以下代码正在运行,但在我的控制台中引发了 TSLint/TS 错误

// Imports
import Vue from "vue";
import Component from "vue-class-component";
import { Line } from "vue-chartjs";

@Component({
    extends: Line,
    props: {
        chartData: {
            type: Object
        }
    }
})
export default class LineChartComponent extends Vue {
    mounted() {
        this.renderChart({ // <-- This line is the issue
            labels: this.$props.chartData.labels,
            datasets: [
                {
                    data: this.$props.chartData.data,
                    borderColor: "",
                    borderWidth: 4
                }
            ]
        });
    }
}

错误是:

TS2339: Property 'renderChart' does not exist on type 'LineChartComponent'.



我相信这与this有关没有正确引用 Line 的 @component 扩展.如果我在组件上手动创建一个方法,我可以摆脱这个错误,但我应该只能使用 this以我的理解...
private renderChart!: (chartData: any, options?: any) => void; 

最佳答案

经过几个小时的尝试,这个解决方案对我有用:

import Vue from 'vue';
import { Line, mixins as chartMixins } from 'vue-chartjs';
import Component, { mixins } from 'vue-class-component';
import { ChartData } from 'chart.js';

const Props = Vue.extend({
  props: {
    chartData: {
      type: Object as () => ChartData,
      default: undefined
    },
    options: {
      type: Object as () => ChartOptions,
      default: undefined
    }
  }
});

@Component({
  extends: Line,
  mixins: [chartMixins.reactiveProp]
})
export default LineChart extends mixins(Props, Line) {
  mounted(): void {
    this.renderChart(this.chartData, this.options);
  }
}

关于vue.js - 属性 'renderChart' 在类型 'LineChartComponent' 上不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61354901/

相关文章:

javascript - Vue.js 中的 'data:' 和 'data()' 有什么区别?

vue.js - 将 axios 实例与 vuex 一起使用

javascript - 如果数据元素的索引发生变化,则重新渲染 DOM

r - 水平条形图 : mis-matched axis units

javascript - 仅显示 HighCharts 样条图中的某些系列

javascript - 不向需要参数的方法传递参数

javascript - VueJS service-worker.js 在我的 PWA 中被忽略

javascript - 谷歌可视化堆叠条形图 : colors and labels for each value

javascript - vue js 如何显示以下数据?

javascript - 当用户在 Vue JS 中的导航容器外单击时如何关闭切换导航