chrome 控制台上的 vanilla js 错误 "cannot set property of undefined"

vanilla js error "cannot set property of undefined" on the chrome console

嘿,我是 chartjs 和 js 的新手,在 chrome 控制台

上不断收到错误“无法设置未定义的 属性”
const dataPie = {

    labels: ['Good Packs', 'Bad Packs'],
    datasets: [{
        label: 'My First Dataset',
        data: [0.1, 0.1],
        backgroundColor: ['#00bf90', 'rgb(255, 75, 75)'],
        hoverOffset: 0
    }]
};

const configPie = {
    type: 'pie',
    data: dataPie,
    options: {}
};

const pieChart = new Chart(
    document.getElementById('chart-pie'),
    configPie
);

然后在定时循环中我调用它并在尝试执行以下操作时收到错误“无法设置未定义的 属性”(我没有在 [=20= 中设置值] 并且仅在顶部构建饼图时设置)。

pieChart.data.datasets.data[0] = 0.5;

就像我说的,我对 js 很陌生,所以如果有人能提供帮助,那就太好了!

看来您访问的数据有误,我会在文档中包含一个 link。我在下面修改了您的代码片段(我没有计时器,但我更改了代码)。确保在更改值后调用 update,以便它反映在 HTML.

datasets 是一个数组,因此您需要访问要修改的数据集的索引。在您的情况下,它是 [0],因为您只有一个数据集。

ChartJs 文档: https://www.chartjs.org/docs/latest/developers/api.html

const dataPie = {

    labels: ['Good Packs', 'Bad Packs'],
    datasets: [{
        label: 'My First Dataset',
        data: [0.1, 0.1],
        backgroundColor: ['#00bf90', 'rgb(255, 75, 75)'],
        hoverOffset: 0
    }]
};

const configPie = {
    type: 'pie',
    data: dataPie,
    options: {}
};

const pieChart = new Chart(
    document.getElementById('chart-pie').getContext('2d'),
    configPie
);

pieChart.data.datasets[0].data[0] = 0.5;
pieChart.update('active');
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.7.1/dist/chart.min.js"></script>
<canvas id="chart-pie" width="400" height="400"></canvas>