我建立一个图表,我希望能够点击一个酒吧,以显示一些信息时,点击,但即使我插入的胜利图页面设置的所有信息是不工作,有人能帮助我,这里是代码
<VictoryStack colorScale={['#533AED']}>
{myWeekDataset &&
myWeekDataset.map((data, i) => {
console.log(data)
return (
<VictoryBar
style={{data: {strokeWidth: 0}}}
cornerRadius={{
top: 10,
bottom: 10,
}}
events={
[
{
target: "data",
eventHandlers: {
onClick: () => {
return [{
target: "data",
mutation: (props) => {
console.log('>>>>CLICKED', props)
}
}]
},
},
},
]
}
data={data}
key={i}
/>
);
})}
</VictoryStack>
字符串
这是数据
const myWeekDataset = [
[
{x: moment().subtract(7, 'days').format('ddd'), y: 8},
{x: moment().subtract(6, 'days').format('ddd'), y: 10},
{x: moment().subtract(5, 'days').format('ddd'), y: 6},
{x: moment().subtract(4, 'days').format('ddd'), y: 7},
{x: moment().subtract(3, 'days').format('ddd'), y: 4},
{x: moment().subtract(2, 'days').format('ddd'), y: 8},
{x: moment().subtract(1, 'days').format('ddd'), y: 9},
],
];
型
我做错了什么?
1条答案
按热度按时间wko9yo5t1#
请考虑以下示例中的代码
字符串
在这里,我将事件定义为一个单独的变量,以使事情更容易阅读。
此外,每个VictoryBar都有一个名为
name
的prop。这在events
数组中用于针对不同的组件。如果你编译并运行这段代码,当你点击条形图时,它会在控制台中打印不同的消息。
现在,让我们更详细地研究
events
数组。events
数组包含2个元素。每个元素都有属性-target和childName。1.target-指定要将事件附加到图形的哪个部分。它可以是(条形图/线图/散点图)的 data 或 labels 或 parent
1.childName-它用于基于我们添加到 VictoryBar 的
name
属性来定位图表的元素。可以是字符串,字符串数组或'all'因此,
{ target: 'data', childName: 'DataSet-0' }
将把我们的事件处理程序附加到所有VictoryBar
上,name
属性等于'DataSet-0'
。1.eventHandlers-包含不同的事件处理器。在示例中,我使用了
onClick
,但也可以使用onMouseOver
和onMouseOut
等其他事件。每个事件处理程序返回一个对象数组。每个对象可以有键-
型
target
和childName
用于指定触发事件时需要影响图表的哪个组件。例如,当单击中的条形图时,可以使用
型
有关事件的更多信息,请查看Victory Pro中的“常用 prop ”页面或Events Guide