0

我目前正在使用 React JSX Highcharts 模块创建一个动态展示多个样条系列的图表(使用 .map 函数)

我有一个名为 DataLines 的全局变量,在我的渲染函数中我写了这个:

{DataLines.map(Line,index)=>
<SplineSeries key={index} id={Line.id} name={Line.name} data={Line.points}/>}

当 Datalines 包含两条线时,图表正确显示它。但是,当我从 DataLines 中删除第一行时,它会从图表中删除第二行(由图表底部的行名显示),并且图表本身实际上并没有改变,即使我们重新渲染它使用新的 DataLines。

此外,如果我的图表中有一条线,并且我将 DataLines 更改为保留另一条线,则它根本不会更新图表。

使用控制台日志我看到发送到渲染函数的数据是正确的。

什么可能导致这种情况,我该如何解决?这是模块的已知问题吗?

提前致谢!

编辑:我的服务器正在使用 c# 中的信号器,因此共享它会更加复杂,但这里是触发图表更新的事件:

createDataLines(lines){
lines.foreach(l=>{
 lNewLine={
  name:l.name,
  id:l.id,
  points:l.points,
  }
   l.points.foreach(p=>{
     point={
     x:p.time,
     y:p.height,
     }
    lNewLine.points.push(point)
   })
 this.state.DataLines.push(lNewLine);
 });
}
  • 该函数是从 componentDidUpdate 调用的,并且使用父组件的设置状态将这些行作为道具接收。所以基本上当我收到新道具时,我会用新数据创建图表(然后我们又回到了图表没有正确更新的问题)。
4

0 回答 0