Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Highchart无法正确显示所选数据_Reactjs_Highcharts - Fatal编程技术网

Reactjs Highchart无法正确显示所选数据

Reactjs Highchart无法正确显示所选数据,reactjs,highcharts,Reactjs,Highcharts,这是一个复制代码: 当我在聚合键下拉列表中选择210C键时,图表显示绿线 然后,我在图形键下拉列表中选择2104键,图形显示橙色线。但210C线消失,当我悬停在210C上时,它显示2104线 聚合键:按时间显示累计数据挖掘后,我发现问题在于重新渲染更新的道具,Highcharts wrapper存在问题 使用immutable标志可以解决以下问题: return <HighchartsReact highcharts={Highcharts} options={options} immut

这是一个复制代码:

当我在聚合键下拉列表中选择210C键时,图表显示绿线

然后,我在图形键下拉列表中选择2104键,图形显示橙色线。但210C线消失,当我悬停在210C上时,它显示2104线


聚合键:按时间显示累计数据挖掘后,我发现问题在于重新渲染更新的道具,Highcharts wrapper存在问题

使用immutable标志可以解决以下问题:

return <HighchartsReact highcharts={Highcharts} options={options} immutable={true}/>;
演示:

简化版:

API:


您也可以尝试与OneTONE标志结合使用。

恐怕我不清楚问题出在哪里。你能描述一下重现问题的步骤吗?嗨@SebastianWędzel,我添加了关于问题的更多细节。jasonB-我试图简化你的代码,以便更好地理解问题是在Highcharts方面还是在你的自定义代码方面,但你似乎渲染Highcharts组件的次数太多了,这是一个非常糟糕的模式。检查此演示:该组件只应安装一次。请尝试修复您的代码,然后我们将能够关注Highcharts。hi@SebastianWędzel,即使我很简单,问题仍然存在。jasonB-我几乎可以肯定代码中的计算有问题。执行以下步骤-打开您在前面的评论中共享的演示,添加210C聚合-查看data.length为319,接下来添加2105图形键数据,现在检查控制台-聚合的data.length已更改为191。Highcharts对此没有任何影响。我确认此解决方案有效。谢谢另一个问题是,我添加了一个onMouseOver函数来设置currentMarker值,因为我想将currentMarker传递给另一个Map组件。将点悬停在绘图上时出现错误。这是一个复制代码,您可以从第54-56行取消注释以查看错误。为什么需要将其保持在该状态?为什么不定义一个全局变量并将其保留在那里?我认为问题在于你的重新排行榜太多次了,每个州的变化都会重新排行榜。正如我之前提到的,这是一个糟糕的模式。在我的实现方式中,它工作得很好——如果我定义一个全局变量,currentMarker不会在映射组件上更新。无论如何,我可以通过使用类组件而不是钩子将值currentMarker传递给Map组件,因为我必须将许多组件更新为钩子,这会花费很多时间。@jasonB配置是使用钩子还是类组件创建的并不重要。看看这个简化的演示:重要的是只渲染一次图表组件。