ChartJS 当我改变输入数据时,Angular 中的图表没有重新呈现

bmvo0sr5  于 2023-03-23  发布在  Chart.js
关注(0)|答案(1)|浏览(153)

父组件:appComponent
子组件:chartComponent
我有一个共享/公共图表组件,我有一个下拉列表,基于下拉列表选择,我正在进行服务调用并获取数据并将该数据传递给子(chartComponent)组件。
问题是当我选择下拉菜单并单击应用按钮时,第一次它工作正常,但第二次如果更改下拉菜单并单击应用,图表不会重新渲染
代码stackblitz

sirbozc5

sirbozc51#

根据您提供的代码,问题是子组件没有被通知下拉选择中的更改。要解决这个问题,您可以向子组件添加ngOnChanges()方法,以便在label更改时更新图表:

ngOnChanges(changes: SimpleChanges) {
    if (changes['labels'] && this.chart) {
        this.chart.data.datasets = this.dataSets;
        this.chart.data.labels = this.labels;
        this.chart.update();
    }
}

相关问题