Recharts 的 Tooltip 为什么在自定义后不显示数据?
我用 Recharts 做了个折线图,想自定义 Tooltip 的内容,但改完之后 tooltip 虽然能弹出来,里面却没数据显示了。明明传了 dataKey 啊,是不是哪里写错了?
我试过把 formatter 拿掉,tooltip 就正常了,加上自定义组件就空了。下面是我的代码:
const CustomTooltip = ({ active, payload }) => {
if (active && payload && payload.length) {
return <div>{payload[0].value}</div>;
}
return null;
};
// 图表中使用
<LineChart data={data}>
<Line dataKey="uv" />
<Tooltip content={<CustomTooltip />} />
</LineChart>
先说个调试技巧,你在 CustomTooltip 里先把 payload 打出来看看:
你大概率会发现 payload 里的数据其实是有的,但可能有几个坑:
第一,检查一下你的 data 数据格式,确保有 uv 这个字段。比如:
第二,如果你需要拿到原始数据的其他字段,要用
payload[0].payload,这个才是完整的数据对象。比如你的数据里还有 pv 字段,想同时显示:第三,别忘了给 Tooltip 外层容器加点样式,不然可能是白字白背景,看起来像没数据一样。这个坑我踩过太多次了...
如果上面这些都确认了还是不行,把你的 data 数据结构贴出来看看,我帮你排查。