gpt4 book ai didi

javascript - Recharts 自定义工具提示的 Typescript 界面

转载 作者:行者123 更新时间:2023-12-05 00:34:24 24 4
gpt4 key购买 nike

还不精通 Typescript,我正在尝试 create a custom Tooltip content在我的 React 应用程序中使用 Typescript 获取我的 Recharts 图表。 @types/recharts已作为 devDependencies 之一安装.
但是,当我定义 CustomTooltip函数如下图,Typescript 报错

Binding element 'active' implicitly has an 'any' type. TS7031


我们如何解决这个问题?
const CustomTooltip = ({ active, payload, label }) => {
if (active) {
return (
<div className="custom-tooltip">
<p className="label">{`${label} : ${payload[0].value}`}</p>
<p className="desc">Anything you want can be displayed here.</p>
</div>
);
}

return null;
}

return (
<ComposedChart data={data}>
...
<Tooltip content={<CustomTooltip />} />
</ComposedChart>
)

尝试定义接口(interface),但又出现了一个错误

Type '{}' is missing the following properties from type 'ICustomToolip': active, payload, label TS2739

interface ICustomToolip {
active: any;
payload: any;
label: any;
}

const CustomTooltip = ({ active, payload, label }: ICustomToolip) => {
if (active) {
return (
<div className="custom-tooltip">
<p className="label">{`${label} : ${payload[0].value}`}</p>
<p className="desc">Anything you want can be displayed here.</p>
</div>
);
}

return null;
}

最佳答案

尝试执行以下操作(使用 rechart 的类型)。
但请记住,您必须添加 @types/recharts npm 包;)

import { TooltipProps } from 'recharts';
import {
ValueType,
NameType,
} from 'recharts/src/component/DefaultTooltipContent';

const CustomTooltip = ({
active,
payload,
label,
}: TooltipProps<ValueType, NameType>) => {
if (active) {
return (
<div className="custom-tooltip">
<p className="label">{`${label} : ${payload?.[0].value}`}</p>
<p className="desc">Anything you want can be displayed here.</p>
</div>
);
}

return null;
};

return (
<ComposedChart data={data}>
...
<Tooltip content={<CustomTooltip />} />
</ComposedChart>
);

关于javascript - Recharts 自定义工具提示的 Typescript 界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65913461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com