可以使用组件添加垂直线<Crosshair />
。您可以在此处的文档中使用此示例。您需要设置onMouseLeave
和onNearestX
处理程序来更新Crosshairs
行的值。诀窍是你必须把它放在组件divs
内部,Crosshair
这样它就不会呈现值框。我正在使用 React Hooks 来回答您的问题,但是您可以将 state 与类一起使用(React Hooks State Docs)。
import React, { useState } from 'react';
function Chart({data}) {
const [points, setPoints] = useState([]);
return <XYPlot
width={400}
height={300}
onMouseLeave={() => setPoints([])}
>
<XAxis/>
<YAxis/>
<HorizontalGridLines />
<VerticalGridLines />
<LineMarkSeries
data={data}
onNearestX={v => setPoint([v])}
/>
<Crosshair values={point}>
{/* Divs inside Crosshair Component required to prevent value box render */}
<div></div>
</Crosshair>
</XYPlot>;
}