Я использую chart.js
, чтобы показать изменения цены от backend
в реальном времени.Backend
отправляет новую цену, когда она изменяется на frontend
.priceData
(массив) сохраняется в mobx
priceChartStore
.Я должен обновить chart
, как цена изменилась.Я использую ref
значение тега canvas
для рисования графика цен.
Проблема в том, что функция componentDidUpdate
не вызывается, пока я не вызову это значение priceData
в *Функция 1017 *, даже если она не используется в функции render
.
Она работает:
componentDidUpdate() {
const { priceChartStore: { priceData } = this.props;
...
// update chart
this.chart = new LineChart({
el: this.el,
priceData,
config: {
liveMode: true,
startTime,
endTime,
maxDataLength: MAX_PRICES_LENGTH,
},
});
...
}
// render function
render() {
const {
priceChartStore: { priceData }, // never used in render function
} = this.props;
return (
<ChartCanvasWrapper>
<canvas ref={el => (this.el = el)} />
</ChartCanvasWrapper>
);
}
она не работает:
// render function
render() {
// const {
// priceChartStore: { priceData }, // never used in render function
// } = this.props;
return (
<ChartCanvasWrapper>
<canvas ref={el => (this.el = el)} />
</ChartCanvasWrapper>
);
}
Так работает mobx
или это моя ошибка?
Примечание: я уверен, что в priceChartStore
нет ошибок или проблем, и я делаю эток этому component
.