我在评估react-vis。假设我有一个react-vis simple chart,当图表悬停时,如何添加一条随鼠标移动的垂直线?我的猜测是,我需要在XYPlot中添加一个十字准线组件,也许还需要一个YAxis组件。但我不明白是怎么做的,我也找不到任何相关的例子。
function Chart({data}) {
return <XYPlot width={400} height={300}><XAxis/><YAxis/>
<HorizontalGridLines />
<VerticalGridLines />
<LineMarkSeries data={data} />
</XYPlot>;
}发布于 2019-06-27 01:16:02
可以使用<Crosshair />组件添加垂直线。您可以在位于here的文档中使用此示例。您需要设置onMouseLeave和onNearestX处理程序来更新Crosshairs行的值。诀窍是您必须将divs放在Crosshair组件中,这样它就不会呈现值框。我正在使用React Hooks来回答您的问题,但是您也可以使用带类的状态(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>;
}https://stackoverflow.com/questions/55066016
复制相似问题