Material-ui“createSvgIcon”未从“@material-uicoreutils”导出

编程代码

1个回答

写回答

KIRRIN

2025-09-03 16:40

+ 关注

JS
JS

Material-UI是一个流行的React UI组件库,它提供了丰富的可重用组件,帮助开发人员快速构建漂亮且易于使用的用户界面。其中一个常用的组件是SvgIcon,它允许我们在应用程序中使用矢量图标。然而,最近我遇到了一个问题,我发现无法从"@material-ui/core/utils"中导出"createSvgIcon"。

在我的项目中,我需要在导航栏中使用一些自定义的矢量图标,以增强用户体验。我按照官方文档的指导安装了Material-UI,并尝试导入createSvgIcon函数来创建自己的SvgIcon组件。然而,当我尝试导入时,我遇到了一个错误,提示我无法从"@material-ui/core/utils"中找到该函数。

我非常困惑,因为我按照文档中的说明进行操作,而且我在过去的项目中也成功使用过这个函数。我检查了我的依赖项和版本,确保一切都是最新的,但问题仍然存在。

经过一番调查,我发现这个问题可能是由于最近的Material-UI版本更新引起的。官方文档中的示例可能已经过时了,导致我无法找到createSvgIcon函数的正确导入路径。

为了解决这个问题,我决定查看Material-UI的GitHub存储库,以查找新版本中createSvgIcon函数的正确导入路径。

在GitHub存储库中,我找到了与SvgIcon相关的文件,并查看了它们的源代码。我注意到在最新版本中,createSvgIcon函数已经从"@material-ui/core/utils"中移除了,并被移到了"@material-ui/core/SvgIcon"中。这就解释了为什么我无法从旧的导入路径中找到它。

为了解决这个问题,我只需将导入语句中的路径从"@material-ui/core/utils"更改为"@material-ui/core/SvgIcon"即可。下面是我修改后的导入语句的示例代码:

JSx

import { SvgIcon } from '@material-ui/core';

import { createSvgIcon } from '@material-ui/core/SvgIcon';

现在,我可以顺利使用createSvgIcon函数来创建自定义的SvgIcon组件了。

解决"createSvgIcon"导入问题

在最新的Material-UI版本中,createSvgIcon函数已经从"@material-ui/core/utils"中移除了。它现在被移到了"@material-ui/core/SvgIcon"中。因此,为了解决导入问题,我们只需将导入语句中的路径修改为"@material-ui/core/SvgIcon"即可。

这是修改后的导入语句的示例代码:

JSx

import { SvgIcon } from '@material-ui/core';

import { createSvgIcon } from '@material-ui/core/SvgIcon';

使用自定义SvgIcon组件

现在,我们可以使用自定义的SvgIcon组件来展示我们的矢量图标了。下面是一个简单的示例代码:

JSx

import { SvgIcon } from '@material-ui/core';

import { createSvgIcon } from '@material-ui/core/SvgIcon';

const MyCustomIcon = createSvgIcon(

<path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 22c-5.514 0-10-4.486-10-10S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z" />,

'MyCustomIcon'

);

const App = () => {

return (

<div>

<SvgIcon component={MyCustomIcon} />

</div>

);

};

export default App;

在上面的示例中,我们首先使用createSvgIcon函数创建了一个名为MyCustomIcon的自定义SvgIcon组件。然后,在我们的应用程序中使用SvgIcon组件,并将component prop设置为我们自定义的图标组件,以显示图标。

通过上述修改和示例代码,我成功解决了导入createSvgIcon函数的问题,并使用自定义的SvgIcon组件展示了矢量图标。这是一个简单的解决方案,希望对其他遇到相同问题的开发人员有所帮助。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号