传递功能的参数反应

发布于 2025-02-09 16:36:34 字数 1153 浏览 1 评论 0原文

在我的应用程序中,我想有条件地呈现一些东西,因此我制作了一个函数getItem,我想在自定义工具提示中调用,const constulpooltooltip

在下面的代码中看到,我想将有效载荷const CustomToolTip =({active,parewolain,label} 中>

我尝试通过{getState(有效载荷,“ a”)}来执行此操作,但是,当我这样做时,我会收到此错误:

键入'有效载荷< valueType,nametype> []'没有属性通常与'tooltipprops< valueType,nametype&gt

;

  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;
  }

In my application, I want to conditionally render something, so I made a function getItem which I want to call in my custom Tooltip, const CustomTooltip.

Seen in the code below, I want to pass payload in const CustomTooltip = ({ active, payload, label} to function getState({payload}

I try to do this by {getState(payload, "A")} However, when I do so, I get this error:

Type 'Payload<ValueType, NameType>[]' has no properties in common with type 'TooltipProps<ValueType, NameType>'

Note: I am new to 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;
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪眸﹌ 2025-02-16 16:36:35

您正在通过有效载荷类型:有效载荷&lt; valueType,nameType&gt; []
但是在 getState 功能中,您期望 tooltipprops&lt; valueType,nametype&gt;

更改代码:

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;
}

You are passing payload which is of type: Payload<ValueType, NameType>[]
But in getState function you expect TooltipProps<ValueType, NameType>

Change code to this:

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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文