Javascript 获取rechart';s悬停/工具提示数据

Javascript 获取rechart';s悬停/工具提示数据,javascript,reactjs,Javascript,Reactjs,我试图获取recharts生成的数据对象的内部,并用于填充它们的工具提示(这样我就可以在其他地方显示它)。下图显示了的输出 console.log(data.payload[0]); 通过放置在工具提示内容上的函数获得: <Tooltip content={ this.showTooltipData.bind(this) } /> 我是不是遗漏了什么 它看起来仍然像一个简单的数组。鉴于: showTooltipData = (data) => { if ( typeo

我试图获取recharts生成的数据对象的内部,并用于填充它们的工具提示(这样我就可以在其他地方显示它)。下图显示了的输出

console.log(data.payload[0]);
通过放置在工具提示内容上的函数获得:

<Tooltip content={ this.showTooltipData.bind(this) } />
我是不是遗漏了什么

它看起来仍然像一个简单的数组。鉴于:

showTooltipData = (data) => {
  if ( typeof data.payload[0] !== 'undefined') {
    // console.log(data.payload[0].then(function(payload){ payload.color }));
    console.log(Object.keys(data.payload[0]));
    console.log("dataKey = " + data.payload[0]["datakey"]);
  }
}
我看到,在日志中(您可以在上面的输出中看到dataKey确实包含一个值):


编辑:上面的代码工作得很好,“datakey”是一个输入错误-移动到datakey,它似乎可以工作。对于任何通过网络搜索到相同问题的其他人-您必须在访问数据之前检查(如上类型)数据的存在性-移动鼠标会不断创建和销毁数据。

答案如下:

showTooltipData = (data) => {
  if ( typeof data.payload[0] !== 'undefined') {
    console.log(Object.keys(data.payload[0]));
    console.log("dataKey = " + data.payload[0]["dataKey"]);
  }
}

在访问数据之前,您必须检查数据是否存在(上面的typeof是一种方法),移动鼠标会不断创建和销毁数据。

答案来自上面:

showTooltipData = (data) => {
  if ( typeof data.payload[0] !== 'undefined') {
    console.log(Object.keys(data.payload[0]));
    console.log("dataKey = " + data.payload[0]["dataKey"]);
  }
}

在访问数据之前,您必须检查数据的存在性(上面的typeof是一种方法)-移动鼠标会不断创建和销毁数据。

您确定要将控制台日志切换到data.payload[0]吗?在数据所在的同一行代码处显示颜色。payload[0]?是。以上编辑。这就是你的意思吗?你好像在用承诺。尝试输出console.log(data.payload[0]),然后输出(函数(payload){payload.color});将在周一上午进行编辑-谢谢!请参阅下面我的答案和OP中的编辑。每次鼠标移动都会创建和销毁数据,因此需要检查其存在性。谢谢你的关注和帮助!是否确实要将控制台日志切换到data.payload[0]。在与data.payload[0]相同的代码行上显示颜色?是。以上编辑。这就是你的意思吗?你好像在用承诺。尝试输出console.log(data.payload[0]),然后输出(函数(payload){payload.color});将在周一上午进行编辑-谢谢!请参阅下面我的答案和OP中的编辑。每次鼠标移动都会创建和销毁数据,因此需要检查其存在性。谢谢你的关注和帮助!如果(data.payload[0]),这不应该是
吗?如果(data.payload[0])
,这不是更简单吗?那就简单多了