You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中Material UI图标作为组件prop时的propType应该设置为什么?

正确的PropType类型是PropTypes.node,你当前的使用场景是直接传入已经渲染好的MUI图标元素,该类型可以覆盖所有React可渲染内容,完全匹配你的需求。

针对两种不同的传参方式,对应PropType定义如下:

场景1:你当前的用法(传入已实例化的图标元素)

你现在写的<Test icon={<VisibilityIcon />} />是直接传已经实例化的React元素,对应的prop定义如下:

Test.propTypes = {
  // 非必填写法
  icon: PropTypes.node
  // 如果要求必须传icon,改成下方写法
  // icon: PropTypes.node.isRequired
};

场景2:传入图标组件本身(由Test内部负责渲染)

如果你调整用法,把未实例化的图标组件传给Test,再由Test内部渲染:

// App.js传参写法
<Test icon={VisibilityIcon} />

// Test.jsx内部渲染逻辑
const { icon: Icon } = props;
return <div><Icon /></div>

这种场景下对应的prop类型为PropTypes.elementType:

Test.propTypes = {
  icon: PropTypes.elementType
};

内容的提问来源于stack exchange,提问作者CCCC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:00:03