В моем коде используются ultimatejs:tracker-react
и react-highcharts
, чтобы нарисовать диаграмму с использованием живых данных, извлеченных из коллекции Mongodb. Для простоты включен пакет autopublish
.React-Highcharts не перерисовывает диаграмму
Задача: После установки начальной серии данных для Highcharts chart.series[0].setData([5,4,3,2,1])
обновляет серию, но новые данные не отображаются на диаграмме. Диаграмма по-прежнему показывает начальные 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>
)
}
}
Вы пытались называть 'chart.redraw()' явно? – Khang
@Khang да, я назвал 'chart.redraw()' прямо после '.setData()'. Это не перерисовывало диаграмму. Странно ..... – Nyxynyx