我正在评估反应。假设我有一个 react-vis simple chart,如何在悬停图表时添加一条随鼠标移动的垂直线? 我的猜测是,我需要在XYPlot中添加一个十字准线组件,也许还要添加一个YAxis组件。但是我不知道怎么做,也找不到任何相关的例子。
function Chart({data}) {
return <XYPlot width={400} height={300}><XAxis/><YAxis/>
<HorizontalGridLines />
<VerticalGridLines />
<LineMarkSeries data={data} />
</XYPlot>;
}
答案 0 :(得分:0)
可以添加带有<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>;
}