私のコードでは、 Mongodb コレクションから取得したライブ データを使用してグラフを描画するためにultimatejs:tracker-react
とを使用しています。react-highcharts
簡単にするために、autopublish
パッケージを有効にします。
問題:ハイチャートの初期データ シリーズを設定した後、chart.series[0].setData([5,4,3,2,1])
シリーズを更新しますが、新しいデータがチャートに描画されません。チャートには、Highcharts が初期化された最初の 3 つのポイントが引き続き表示されます。
ハイチャートに新しいseries
値を描画するにはどうすればよいでしょうか?
import React, { Component, PropTypes } from 'react';
import ReactDOM from 'react-dom';
import TrackerReact from 'meteor/ultimatejs:tracker-react';
import ReactHighcharts from 'react-highcharts';
import { Pressure } from '../api/pressure.js';
export class PressureChart extends TrackerReact(Component) {
// Returns data in the Highcharts series format
seriesData() {
const result = Pressure.find().fetch();
pressure = _.pluck(result, 'pressure');
pressure = pressure.map(p => Number(p))
time = _.pluck(result, 'timestamp');
series = _.zip(time, pressure);
return pressure
}
updateChart() {
let chart = this.refs.chart.getChart()
console.log(chart.series[0].data) // Echos out an array of 3 elements
chart.series[0].setData([5,4,3,2,1]) // Tests using this array, instead of array pulled from Collection
console.log(chart.series[0].data) // Echos out an array of 5 elements
}
render() {
const config = {
series: [{
data: [1,2,3]
}]
};
if(this.seriesData().length){
this.updateChart()
}
return (
<ReactHighcharts config={config} ref="chart"></ReactHighcharts>
)
}
}