I have a page with a dropdown menu, where I can select an option (data source) and load a couple charts. After that, if I select other data source charts should update as well.
When I select other data source chart is not updating. I know my variable is updating properly, also that my chart call is using this same variable.
Here a the main module
function Content() {
const [chartData, setChartData] = useState(
mockData.map(series => ({
...series,
data: series.data.map(point => {
const dateArr = point[0].split("-");
return [Date.UTC(dateArr[0], dateArr[1], dateArr[2]), point[1] * 100];
})
}))
);
const handleSelectedOptionChange = evt => {
const selectedOption = evt.target.value;
if (selectedOption === 1) {
setChartData(() => {
mockData.map(series => ({
...series,
data: series.data.map(point => {
const dateArr = point[0].split("-");
return [
Date.UTC(dateArr[0], dateArr[1], dateArr[2]),
point[1] * 100
];
})
}));
});
}
if (selectedOption === 2) {
setChartData(() => {
mockData2.map(series => ({
...series,
data: series.data.map(point => {
const dateArr = point[0].split("-");
return [
Date.UTC(dateArr[0], dateArr[1], dateArr[2]),
point[1] * 100
];
})
}));
});
}
};
return (
<>
<FormControl>
<InputLabel htmlFor="grouped-native-select">Choose</InputLabel>
<Select
id="selector"
name="selector"
onChange={handleSelectedOptionChange}
defaultValue={1}
>
<option value={1}>First</option>
<option value={2}>Second</option>
</Select>
</FormControl>
<Grid item xs={12} sm={12}>
<Paper>
<CustomGUIChart data={chartData} />
</Paper>
</Grid>
</>
);
}
This is a "working" demo
I've checked this question, my HighchartsReact
is already set with allowChartUpdate
.
Also I've checked this question, there are some solutions there. But I couldn't implement any of those. Because all of them acces the chart via JQuery
and I don't know an alternative for the react
case.
And this forum post I face the same problem as the above, it's a JQuery
method call.
Appreciate any help.