bur*_*fon 5 javascript reactjs react-vis
我正在评估react-vis。假设我有一个 react-vis简单图表,当图表悬停时,如何添加一条随鼠标移动的垂直线?我的猜测是,我需要在 XYPlot 内添加一个十字准线组件,也许还需要一个 YAxis 组件。但我不明白如何做,也找不到任何相关的例子。
function Chart({data}) {
return <XYPlot width={400} height={300}><XAxis/><YAxis/>
<HorizontalGridLines />
<VerticalGridLines />
<LineMarkSeries data={data} />
</XYPlot>;
}
Run Code Online (Sandbox Code Playgroud)
可以使用<Crosshair />组件添加垂直线。您可以在此处的文档中使用此示例。您需要设置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>;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1968 次 |
| 最近记录: |