首页 > 解决方案 > 我应该为 material-ui 图标使用什么道具类型?

问题描述

我有一个组件,允许您将图标作为道具传递,具有默认值

import DefaultIcon from '@material-ui/icons/FeedbackOutlined';
const MyIconWrapper = ({Icon}) = (<Icon/>)

和道具类型:

MyIconWrapper.propTypes = { Icon: PropTypes.element }
MyIconWrapper.defaultProps = { Icon: DefaultIcon }

因为图标是一个组件(看它似乎是源代码)?

但是,我收到关于不是元素的道具类型警告。它实际上是一个对象。

我目前已将此作为我的道具类型

MyIconWrapper.propTypes = { 
    Icon: PropTypes.shape({
        displayName: PropTypes.string.isRequired,
        type: PropTypes.shape({ render: PropTypes.func.isRequired })
    }) 
};

但这似乎我只是在重新定义一个反应元素?

这是图标的正确道具类型还是有更好的使用?

标签: javascriptreactjsmaterial-uireact-proptypesgoogle-material-icons

解决方案


推荐阅读