Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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
Javascript 当安装在酶中时,为什么带有ResponsiveContainer的ReCharts图表不呈现图表的子元素?_Javascript_Enzyme_Recharts - Fatal编程技术网

Javascript 当安装在酶中时,为什么带有ResponsiveContainer的ReCharts图表不呈现图表的子元素?

Javascript 当安装在酶中时,为什么带有ResponsiveContainer的ReCharts图表不呈现图表的子元素?,javascript,enzyme,recharts,Javascript,Enzyme,Recharts,鉴于我有一张使用React和Recharts的图表,如下所示: <ResponsiveContainer width="99%" height="99%"> <LineChart data={data}> <Line dataKey="test"/> </LineChart> </ResponsiveContainer> 为什么用JsDom在Ezyme中挂载它不会呈现折线图(即线没有挂载) 为网页编写响应ReCha

鉴于我有一张使用React和Recharts的图表,如下所示:

<ResponsiveContainer width="99%" height="99%">
  <LineChart data={data}>
    <Line dataKey="test"/>
  </LineChart>
</ResponsiveContainer>


为什么用JsDom在Ezyme中挂载它不会呈现
折线图
(即
线
没有挂载)

为网页编写响应ReCharts组件时,将字符串传递到
响应图表
宽度
高度
属性是有效的,并将在HTML标记中呈现。但是,下面的图表组件(无论是
折线图
还是任何其他图表)需要特定的整数宽度。如果它收到一个字符串,它将失败,而不是渲染

大概
ResponsiveChart
负责将正确的宽度/高度道具以响应的方式发送给孩子们。但无论出于何种原因,它在挂载时都不会执行此操作(可能是因为JsDom没有模拟
窗口的某些功能),因此它会发送字符串,这会导致图表在不返回或记录任何错误消息的情况下不呈现其子级

要修复此问题,请为宽度和高度添加有效的整数值:

<ResponsiveContainer width={700} height={300}>
  <LineChart data={data}>
    <Line dataKey="test"/>
  </LineChart>
</ResponsiveContainer>


在我的例子中,我添加了一个prop以保留字符串作为默认值,但允许在测试上下文中进行重写,即:
width={this.props.width | |“99%”}

这应该被接受为答案;这正是发生在我身上的事情——由于雷查茨默默地失败了,所以很难弄清楚。谢谢你,詹斯基