开发者问题收集

Chart.js 使用函数填充数据时抛出错误

2022-12-06
36

我正在使用 Chart.js 和 react-chartjs-2 向我的 React 应用程序添加图表。

我正在尝试将数据加载到图表中,如下所示:

<Chart type="line" data={this.getData}/>

getData 是一个简单的函数,它将组件 props 中的数据转换为 Chart.js 可以理解的格式:

function getData() {
    const data = this.props.data;
    [...]
    return {
        labels: dates // This is an array of dates as strings, ex ["2022-11-14", ...]
        datasets: [{ label: "Some Label", data: sales}] // sales is an array of numbers
    }
}

但是,当我加载图表时出现以下错误:

TypeError: t is undefined

如果我将数据硬编码到组件中,此错误就会消失,即:

<Chart type="line" data={{
    labels: ["one", "two", "three"]
    datasets: [{ label: "Some Label", data: [1,2,3]}]
}}/>

因此,尽管 getData() 返回数据的方式与硬编码完全相同,但如果我使用 getData() 而不是对图表数据进行硬编码,则会引发该错误。

1个回答

您正在调用 data 内的函数,因此请添加缺失的括号

<Chart type="line" data={this.getData()}/>
Sachila Ranawaka
2022-12-06