在我的应用程序中,我想有条件地渲染一些东西,所以我做了一个函数getItem
,我想在我的自定义工具提示const CustomTooltip
中调用。
在下面的代码中,我想将const CustomTooltip = ({ active, payload, label}
中的payload
传递给function getState({payload}
我尝试通过{getState(payload, "A")}
做到这一点,然而,当我这样做时,我得到这个错误:
类型"Payload<ValueType,>[]"与类型"TooltipProps<ValueType,>"没有共同的属性
注意:我是新的React
const numberStates = 3;
function getState({payload}: TooltipProps<ValueType, NameType>, state: string ){
if(payload){
for(let i = 0; i < numberStates; i++){
if(payload[i].dataKey == state){
return <p>{ payload[i] } : { payload[i].value }</p>
}
}
}
return null;
}
const CustomTooltip = ({ active, payload, label}: TooltipProps<ValueType, NameType>) => {
if(active && payload && payload.length){
return (
<div className = "custom-tooltip">
{getState(payload, "A")}
{getState(payload, "B")}
{getState(payload, "C")}
</div>
);
}
return null;
}
您正在传递有效载荷其类型为:Payload<ValueType,>[]但是在getState中您期望的函数TooltipProps<ValueType,>
将代码改为:
function getState(payload: Payload<ValueType, NameType>[], state: string) {
if (payload) {
for (let i = 0; i < numberStates; i++) {
if (payload[i].dataKey === state) {
return (
<p>
{payload[i]} : {payload[i].value}
</p>
);
}
}
}
return null;
}