Есть компонент
Сhart (для создания графика chart.js):
import React, { useState, useEffect, useRef } from 'react';
import ChartJs from 'chart.js';
const chartConfig = {
type: 'bar',
data: {
labels: [],
datasets: [{
label: '',
data: [],
backgroundColor: [],
borderColor: [],
borderWidth: 0,
barPercentage: 1.0
}]
},
options: {
responsive: true,
maintainAspectRatio: true,
spanGaps: false,
legend: {
display: false
},
plugins: {
filler: {
propagate: false
}
},
tooltips: {
enabled: true
},
scales: {
xAxes: [{
gridLines: {
display: false,
offsetGridLines: true
}
}],
yAxes: [{
gridLines: {
color: 'rgba(242, 243, 244, 1.0)',
zeroLineWidth: 0
},
ticks: {
beginAtZero: true
}
}]
}
}
};
const Chart = (props) => {
const chartContainer = useRef(null);
const [chartInstance, setChartInstance] = useState(null);
const updateDataset = (datasetIndex, newLabels, newData) => {
chartInstance.data.labels = props.labels;
chartInstance.data.datasets[datasetIndex].data = props.data;
chartInstance.update();
};
useEffect(() => {
if (chartContainer && chartContainer.current) {
const newChartInstance = new ChartJs(chartContainer.current, chartConfig);
setChartInstance(newChartInstance);
}
}, [chartContainer]);
return (
<React.Fragment>
<canvas ref={chartContainer} />
</React.Fragment>
);
};
export default Chart;
Далее я импортирую его уже в рабочем компоненте:
import Chart from '../../components/Chart';
И в теле компонента (jsx верстка) вставляю так:
<Chart />
Вопрос, как теперь в рабочем компоненте, где я вставил
<Chart />
вызвать его функцию (и передать ей: datasetIndex, newLabels, newData) обновления данных - updateDataset?