由于还不熟悉Typescript,我试图在我的React应用程序中使用Typescript为我的Recharts图表create a custom Tooltip content。@types/recharts
已经安装为devDependencies
之一。
但是,当我按如下所示定义CustomTooltip
函数时,Typescript抛出错误
绑定元素'active'隐式具有'any'类型。TS 7031
我们如何解决这个问题?
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>
)
尝试定义接口,但得到另一个错误
类型“{}”缺少类型“ICustomToolip”中的以下属性:有源,有效载荷,标签TS 2739
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;
}
7条答案
按热度按时间gupuwyp21#
尝试执行以下操作(使用rechart的类型)。
但请记住,您必须添加@types/recharts npm包;)
2uluyalo2#
被接受的答案是错误的,并且在正确配置了typescript并且禁止使用任何typescript的项目中将失败。
用途:
将number和string更改为数据类型。您也可以将其与ValueType和NameType一起使用,但将其与类型一起声明更有意义。
6ie5vjzr3#
通常
而是取决于你的图表数据,所以一般来说
nfzehxib4#
这里有一些代码可能对人们有所帮助。我使用的是typescript,我没有使用显式的接口,就像这样的任何类型。
在你的TSX中,确保像这样传入undefined。网站上的例子没有明确说明就很好,但是我的编辑抱怨了一些错误。
<Tooltip content={<CustomTooltip active={undefined} payload={undefined} label={undefined}/>} />
对于CustomToolTip,这对我来说很难理解,payload的索引必须为0,然后调用点运算符,因为那里有一个payload类来访问您的自定义属性,如time,data和change_type
然后它应该弹出正确的悬停没有任何问题。
i34xakig5#
hs1rzwqc6#
@Daria Babakova的回答几乎涵盖了它,但唯一需要注意的是,你不应该从“src”导入。
所以与其说
最好写
至少在recharts 2.1.12上,它工作得很好。
vuktfyat7#
这通常对我有效,但其他方法可能是: