使用 React Table 返回第一个值重新绘制 dataMax

Recharts dataMax with React Table returning first value

我正在构建一个简单的 React 应用程序,它从 API 中提取数据,使用 React Table 来组织数据,并将 Recharts 连接到图表。

我正在尝试绘制两个字段 - "UnitPrice" 和 "District"。并非 JSON 中的所有对象都包含 "UnitPrice"。当我将轴域设置为 domain={[0, 'dataMax']} 时,图形总是 returns 第一个非零值作为 dataMax

我试过编写如下所示的一些函数来替换 dataMax 但没有成功。

const MaxY = ({ UnitPrice, i }) => {
  let max;
  for (i = 0; i < UnitPrice.length; i++) {
    if (UnitPrice[i] > max) {
      max = UnitPrice[i];
    }
  }
  return max;
};

我也尝试删除不包含 UnitPrice 或重复 District 值但失败的项目。我是否需要重新映射与 React Table 分开的数据才能正常工作?

如果将 NaN 提供给 domain 属性的第二个元素,这似乎是 Recharts 的默认行为,或者它是 Recharts 内部计算 dataMax 的结果。

如果 JSON 将 UnitPrice 编码为字符串,这通常会发生。如果是这种情况,请将其解析为整数。

虽然我不能肯定地说,考虑到 Recharts 似乎不处理字符串到整数的转换,您可能不想删除任何没有 UnitPrice 的元素- 或提供默认数值。如果不这样做,Recharts 可能会计算一个 NaN 作为最大 Y 值,这将导致它的回退行为。