-1

I am doing this:

const getDataForChart = () => {
    const labels = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];

    const test = {
        labels,
        datasets: [
            {
                label: 'Dataset 1',
                data: [0, 5, 10, 15],
                borderColor: 'rgb(255, 99, 132)',
                backgroundColor: 'rgba(255, 99, 132, 0.5)',
            },
            {
                label: 'Dataset 2',
                data: [2, 7, 12, 17],
                borderColor: 'rgb(53, 162, 235)',
                backgroundColor: 'rgba(53, 162, 235, 0.5)',
            },
        ],
    };

    return test;
};

And then adding the function reference in the data props of the Line chart like this:

<Line data={getDataForChart} options={options} width={400} height={400} />

Results in the following error:

Property 'datasets' is missing in type '() => { labels: any; datasets: any; }' but required in type 'ChartData<"line", (number | ScatterDataPoint | null)[], unknown>'.

But if I pass the object literal straight in the prop, I don't get the error and the graph renders successfully.

            <Line
                data={{
                    labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
                    datasets: [
                        {
                            label: 'Dataset 1',
                            data: [0, 5, 10, 15],
                            borderColor: 'rgb(255, 99, 132)',
                            backgroundColor: 'rgba(255, 99, 132, 0.5)',
                        },
                        {
                            label: 'Dataset 2',
                            data: [2, 7, 12, 17],
                            borderColor: 'rgb(53, 162, 235)',
                            backgroundColor: 'rgba(53, 162, 235, 0.5)',
                        },
                    ],
                }}
                options={options}
                width={400}
                height={400}
            />

Why is this happening?

halfer
  • 19,824
  • 17
  • 99
  • 186
Onyx
  • 5,186
  • 8
  • 39
  • 86

1 Answers1

1

You need to call the function.

<Line data={getDataForChart()} options={options} width={400} height={400} />
Anastasia
  • 712
  • 1
  • 5
  • 11