统一图表标签(VChart)或是语法化图表标签(BarChart等)最外层图表组件,其Props上都继承了图表的事件处理回调EventsProps
。
EventsProps
的定义如下:
interface EventsProps {
onPointerDown?: (e: any) => void | boolean;
onPointerUp?: (e: any) => void | boolean;
onPointerUpOutside?: (e: any) => void | boolean;
onPointerTap?: (e: any) => void | boolean;
onPointerOver?: (e: any) => void | boolean;
onPointerMove?: (e: any) => void | boolean;
onPointerEnter?: (e: any) => void | boolean;
onPointerLeave?: (e: any) => void | boolean;
onPointerOut?: (e: any) => void | boolean;
onMouseDown?: (e: any) => void | boolean;
onMouseUp?: (e: any) => void | boolean;
onMouseUpOutside?: (e: any) => void | boolean;
onMouseMove?: (e: any) => void | boolean;
onMouseOver?: (e: any) => void | boolean;
onMouseOut?: (e: any) => void | boolean;
onMouseEnter?: (e: any) => void | boolean;
onMouseLeave?: (e: any) => void | boolean;
onPinch?: (e: any) => void | boolean;
onPinchStart?: (e: any) => void | boolean;
onPinchEnd?: (e: any) => void | boolean;
onPan?: (e: any) => void | boolean;
onPanStart?: (e: any) => void | boolean;
onPanEnd?: (e: any) => void | boolean;
onDrag?: (e: any) => void | boolean;
onDragStart?: (e: any) => void | boolean;
onDragEnter?: (e: any) => void | boolean;
onDragLeave?: (e: any) => void | boolean;
onDragOver?: (e: any) => void | boolean;
onDragEnd?: (e: any) => void | boolean;
onRightDown?: (e: any) => void | boolean;
onRightUp?: (e: any) => void | boolean;
onRightUpOutside?: (e: any) => void | boolean;
onTouchStart?: (e: any) => void | boolean;
onTouchEnd?: (e: any) => void | boolean;
onTouchEndOutside?: (e: any) => void | boolean;
onTouchMove?: (e: any) => void | boolean;
onTouchCancel?: (e: any) => void | boolean;
onPress?: (e: any) => void | boolean;
onPressUp?: (e: any) => void | boolean;
onPressEnd?: (e: any) => void | boolean;
onSwipe?: (e: any) => void | boolean;
onDrop?: (e: any) => void | boolean;
onWeel?: (e: any) => void | boolean;
onClick?: (e: any) => void | boolean;
onDblClick?: (e: any) => void | boolean;
}
组件标签包括Axis
、Legend
、Mark
、Region
其中只有图例Legend有定义额外的事件,分别是:
interface EventsProps {
/** 图例项hover事件 */
onLegendItemHover?: (e: any) => void | boolean;
/** 图例项hover事件 */
onLegendItemUnHover?: (e: any) => void | boolean;
/** 图例项点击事件 */
onLegendItemClick?: (e: any) => void | boolean;
}
系列组件(例如Bar
、Line
等组件)同样继承了EventsProps
事件,详情可参考上文。
import React from 'react';
import { BarChart, Bar, Axis, Legend } from '@visactor/react-vchart';
function MyChart(props) {
const barData = [
{
id: 'barData',
values: [
{ month: 'Monday', sales: 22 },
{ month: 'Tuesday', sales: 13 },
{ month: 'Wednesday', sales: 25 },
{ month: 'Thursday', sales: 29 },
{ month: 'Friday', sales: 38 }
]
}
]
return (
<BarChart
data={barData}
onClick={(ev) => { console.log('图表被点击', ev) }}
>
<Bar
xField="month"
yField="sales"
onClick={(ev) => { console.log('柱形被点击', ev) }}
/>
<Axis
orient="bottom"
type="band"
/>
<Axis
orient="left"
type="linear"
/>
<Legend
visible={true}
onLegendItemClick={(ev) => { console.log('图例项被点击', ev) }}
/>
</BarChart>
);
}
export default MyChart;