为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 React 和 Typescript 中将组件作为 prop 传递?

如何在 React 和 Typescript 中将组件作为 prop 传递?

慕雪6442864 2022-08-04 09:39:52
我是 React 的新手,正在使用 Material UI 的 Tabs 组件构建一个选项卡组件。我想将材质 UI 徽章组件放在选项卡组件的标签属性中,但我不确定如何执行此操作。Tab 组件如下所示:        <Tab          key={i}          label={label}          {...globalTabProps}          {...tabProps}          classes={{            wrapper: cx('MuiTab-wrapper'),          }}        />我正在尝试按如下方式添加徽章:    const label = {      <Badge        color="primary"        className={          badgeProps.badgeContent === ''            ? classNames(classes.MuiBadge, classes.MuiBadgeDotted)            : classNames(classes.MuiBadge, classes.MuiBadgeNumber)        }        badgeContent={''}        invisible={false}        {...globalBadgeProps}        {...badgeProps}      ></Badge>    };当然,这是错误的(解析错误),但我不认为这是处理这个问题的正确方法。有人能为我指出正确的方向吗?
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您应该用 包装它,如下所示。()


const label = (

      <Badge

        color="primary"

        className={

          badgeProps.badgeContent === ''

            ? classNames(classes.MuiBadge, classes.MuiBadgeDotted)

            : classNames(classes.MuiBadge, classes.MuiBadgeNumber)

        }

        badgeContent={''}

        invisible={false}

        {...globalBadgeProps}

        {...badgeProps}

      ></Badge>

    )


注意包装它。()


然后像这样做:


       <Tab

          key={i}

          label={label}

          {...globalTabProps}

          {...tabProps}

          classes={{

            wrapper: cx('MuiTab-wrapper'),

          }}

        />

它内部做了什么:


const WhateverComponent = (props) => (

  <div>

   ...

   {props.label}

  </div>

);


查看完整回答
反对 回复 2022-08-04
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号