Javascript 使用react和chartjs绘制实时数据流

Javascript 使用react和chartjs绘制实时数据流,javascript,reactjs,chart.js,frontend,Javascript,Reactjs,Chart.js,Frontend,我想用它来实时传输数据。但目前,我的图表显示相同的数据集,并保持静态。尽管我遵循下面的示例,但我使用了以下代码: 从“React”导入React; 从'react-chartjs-2'导入{Line}; 导入“chartjs插件流”; var createReactClass=require('create-react-class'); 常数数据={ 标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”], 数据集:[ { 标签:“价格”, 填充:假, 线张力:0.1,

我想用它来实时传输数据。但目前,我的图表显示相同的数据集,并保持静态。尽管我遵循下面的示例,但我使用了以下代码:

从“React”导入React;
从'react-chartjs-2'导入{Line};
导入“chartjs插件流”;
var createReactClass=require('create-react-class');
常数数据={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”],
数据集:[
{
标签:“价格”,
填充:假,
线张力:0.1,
背景颜色:“rgba(75192192,0.4)”,
边框颜色:“rgba(75192192,1)”,
borderCapStyle:“butt”,
borderDash:[],
borderDashOffset:0.0,
borderJoinStyle:'斜接',
pointBorderColor:'rgba(75192192,1)',
pointBackgroundColor:“#fff”,
点边界宽度:1,
点半径:5,
pointHoverBackgroundColor:'rgba(75192192,1)',
pointHoverBorderColor:'rgba(2201,1)',
pointHoverBorderWidth:2,
点半径:1,
点半径:10,
数据:[65,59,80,81,56,55,40]
}
]
};
导出默认createReactClass({
displayName:'LineExample',
render(){
返回(
);
}

});如果没有代码片段,我想问题就在这里

onRefresh: function(chart) {
  data.dataset.data.push({
    x: Date.now(),
    y: Math.random()
  });
}
您已将新数据推送到初始数据集,但您可能需要将其推送到图表本身。请看下面的示例:

看起来您应该直接将数据传递到图表

chart.config.data.datasets.forEach(function(dataset) {
  dataset.data.push({
    x: Date.now(),
    y: randomScalingFactor()
  });
});
或者,如果您在stackblitz之类的地方设置了mvp,我/某人可以更新此答案

onRefresh: function(chart) {
  chart.dataset.data.push({
    x: Date.now(),
    y: Math.random()
  });
}

您提供的数据格式错误,您正在尝试

data.dataset.data.push
但您提供的数据只有X值。您需要重新格式化它,数据的格式应该如下:
{x:$(value),y:${value}}

在中打开下面的代码段

从“React”导入React;
从“react-chartjs-2”导入{Line};
导入“chartjs插件流”;
var createReactClass=require(“创建ReactClass”);
常数数据={
数据集:[
{
标签:“数据集1”,
边框颜色:“rgb(255、99、132)”,
背景颜色:“rgba(255,99,132,0.5)”,
线张力:0,
borderDash:[8,4],
数据:[]
}
]
};
常量选项={
比例:{
xAxes:[
{
键入:“实时”,
实时:{
onRefresh:function(){
data.dataset[0].data.push({
x:Date.now(),
y:Math.random()*100
});
},
延迟:2000
}
}
]
}
};
导出默认createReactClass({
displayName:“LineExample”,
render(){
返回(
);
}
});

图表
未定义,因为它从未在React中定义过

以下是React的一个示例:

onRefresh: function(chart) {
   chart.dataset.data.push({
   x: Date.now(),
   y: Math.random()
  });
}