首页 > 解决方案 > 如何在 react-vis 中从 onValueMouseOver 获取事件?

问题描述

根据react-vis doconValueMouseOver应该同时返回 theeventdatapoint. 然而,事件似乎并没有通过。难道我做错了什么?

const Charts = () => {
  const data = [
    { x: 1, y: 1 },
    { x: 2, y: 1 },
    { x: 3, y: 5 },
    { x: 4, y: 5 },
    { x: 5, y: 1 },
  ];

  return (
    <XYPlot height={400} width={400}>
      <VerticalBarSeries
        data={data}
        onValueMouseOver={(datapoint, event) => {
          console.log(event.target); // undefined
        }}
      />
    </XYPlot>
  );
};

标签: javascriptreactjschartsreact-vis

解决方案


实际上,该event参数具有一个event您可以使用和访问实际事件的属性。

你要么这样做:

<VerticalBarSeries
  data={data}
  onValueMouseOver={(datapoint, event) => {
    console.log(event.event.target); // Some SVG element
  }}
/>

或使用解构:

<VerticalBarSeries
  data={data}
  onValueMouseOver={(datapoint, { event }) => {
    console.log(event.target); // Some SVG element
  }}
/>

推荐阅读