我已经使用 recharts 实现了条形图。当我单击将显示与栏相关的其他信息的栏时,我想在图表区域之外显示一个新的 div 元素。我添加了一个函数,该函数将返回一个需要在 onClick 事件上显示的 div 元素。
<BarChart width={1130} height={450} data={data}>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="endTime" tickFormatter={time => moment.unix(time).format('DD MMM')} />
<YAxis />
<Tooltip content={this.renderTooltip} />
<Legend verticalAlign="top" height={36} />
<Brush dataKey='endTime' height={30} stroke="#1984CD" tickFormatter={time => moment.unix(time).format('DD MMM')} onChange={this.handleBrushChange.bind(this)} />
<Bar barSize={20} name="process duration" dataKey="duration" fill="#1984CD" onClick={this.onBarClick.bind(this)} />
</BarChart>
onBarClick(bar) {
console.log("bar clicked", bar);
return (
<div className='infoPanel'>
<Box colorIndex="light-1" pad="small" margin="small">
<p>StartTime: {moment.unix(bar.startTime).format('MMM Do YYYY, h:mm:ss')}</p>
<p>EndTime: {moment.unix(bar.endTime).format('MMM Do YYYY, h:mm:ss')}</p>
<p>Event: <span> {bar.aname}</span> {bar.evtime1}</p>
<p>Event: <span> {bar.aname2}</span> {bar.evttime2}</p>
<p>Event: {bar.aname3} at {bar.evtime3}</p>
</Box>
</div>
);
}
.infoPanel {
margin-top: 5em;
color: #666;
background-color: aquamarine;
}
该函数被调用并正确运行,但我在任何地方都看不到 div 元素。不添加新组件就不能添加新的 div 元素吗?