材质 UI 图标的类型

Posted

技术标签:

【中文标题】材质 UI 图标的类型【英文标题】:type for material UI icons 【发布时间】:2021-02-09 19:14:55 【问题描述】:

我有一个如下所示的组件:

type IconButtonProps =  text: string ; onClick: () => void, icon: any;

export const IconButton: FunctionComponent<IconButtonProps> = (
  text,
  onClick,
  icon,
) => 
  const classes = useStyles();
  return (
    <Button className=classes.button 
    onClick=onClick
   >
     ' '
    icon
     text
   </Button>
  );
;

并且是这样调用的:


import SearchIcon from '@material-ui/icons/Search';

<IconButton text='Search' icon=<SearchIcon /> onClick=()=>SearchUsers()></IconButton>

在道具中,我使用any 作为图标的类型。使用什么类型的正确?我想避免使用任何类型。

【问题讨论】:

你是从哪里导入 SearchIcon 的? @GuruparanGiritharan SearchIcon from '@material-ui/icons/Search'; 为什么投反对票? 【参考方案1】:

也许import SvgIconComponent from "@material-ui/icons";

【讨论】:

那是一个组件,而不是一个类型? 它是一个类型github.com/mui-org/material-ui/blob/… 谢谢!这对我有用。对于 MUI V5,它是 import SvgIconComponent from "@mui/icons-material";【参考方案2】:

这样使用

export const IconButton: FunctionComponent = (
  text,
  onClick,
  icon
) => 
  const classes = useStyles();
  return (
    <Button className=classes.button 
    onClick=onClick
   >
     ' '
    icon
     text
   </Button>
  );
;

【讨论】:

我已经询问了 Icon 的类型。我在打字稿中使用它,所以需要所有道具的类型。它已经起作用了。 这里不需要定义 IconButtonProps 图标类型

以上是关于材质 UI 图标的类型的主要内容,如果未能解决你的问题,请参考以下文章

使用材质 ui svg 图标作为背景图片

材质 UI 步进器组件错误状态显示不需要的图标

调整 wpf 材质设计图标的粗细

如何在 Angular 5 的 Angular 材质 Snackbar 中添加图标

样式/更改 Material UI React 中的自动完成关闭图标

反应如何使用 TypeScript 在 Textfield Material-UI 中使用图标