reactjs - rechart 的 Legend 内容的正确类型是什么?
问题描述
在我正在帮助的应用程序中,有一个rechart
带有图例的图表渲染,如下所示:
<Legend
content={renderLegend}
/>
renderLegend
定义为以下函数:
const renderLegend = (props) => {
const { payload } = props;
return (
<ul>
{
payload.reverse().map((entry, index) => (
<li key={`item-${index}`}>
<span style={{backgroundColor: entry.color}} />
<span>{entry.payload.value}</span> {entry.value}
</li>
))
}
</ul>
);
};
这个函数表明 for 的类型props.payload
应该是这样的:
interface props {
payload: {
color: string;
value: string;
payload: {
value: string;
}
}[];
}
在 TS 中,我想renderLegend
适当地键入函数,但这种类型似乎不存在。组件的属性content
采用Legend
aContentType
转换为包含属性的ReactElement | (props: Props) => Element
位置Props
,但payload
如果我尝试访问它,我发现它没有value
属性。值得一提的是,它按原样工作,用 Typescript 编写,无需打字。我正在尝试添加打字以更好地访问 this payload
。
解决方案
Recharts 提供了 Payload 类型。尝试:
interface props {
payload: Payload[];
}
如果您的编辑器没有自动导入,请不要忘记导入:
import type { Payload } from "recharts/types/component/DefaultLegendContent";
推荐阅读
- doctrine-orm - Symfony 4 - 如何订购但 DISTINCT 和第二次订购 - Createquerybuilder?
- assembly - 为什么将 init_task 结构地址保存到 arm64 引导代码 __primary_switched 中的 sp_el0?
- python - 如何执行独特的随机函数
- javascript - 我们如何在 ANT D 列中获取/重新呈现异步数据
- spring - 在 Spring Security 中注销后重定向到外部身份验证时出现 Cors 问题
- python - 如何使用 Discord.py 发送消息
- matlab - 从 3 个向量创建热图
- regex - 正则表达式从字符串获取链接,除了多个 www
- php - php修复解析错误语法错误意外
- python - 大熊猫使用 DatetimeIndex 绘图的 DateFormatters