我的代码使用ultimatejs:tracker-react
和react-highcharts
使用从 Mongodb 集合中提取的实时数据绘制图表。为简单起见,autopublish
启用了包。
问题:为 Highcharts 设置初始数据系列后,chart.series[0].setData([5,4,3,2,1])
更新系列但未在图表上绘制新数据。图表仍然显示初始化 Highcharts 的初始 3 点。
我们如何才能series
在 highcharts 图表上绘制新值?
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>
)
}
}