Reactjs 在CRA应用程序中将SVG文件用作React组件
我试图导入一个svg文件,但作为一个react组件,但我看不到实际的图标。我希望看到一个主页图标,但我看到的只是一个黑色的填充图形 我尝试的Reactjs 在CRA应用程序中将SVG文件用作React组件,reactjs,material-ui,Reactjs,Material Ui,我试图导入一个svg文件,但作为一个react组件,但我看不到实际的图标。我希望看到一个主页图标,但我看到的只是一个黑色的填充图形 我尝试的 import {ReactComponent as Home} from '../assets/svgs/home.svg'; import {List, ListItem, ListItemIcon} from '@material-ui/core'; <List> {['Home', 'Video', 'Music', 'Sound
import {ReactComponent as Home} from '../assets/svgs/home.svg';
import {List, ListItem, ListItemIcon} from '@material-ui/core';
<List>
{['Home', 'Video', 'Music', 'Sound', 'Painting', 'Images', 'Heritage', 'Fashion'].map((text, index) => (
<ListItem button key={text}>
<ListItemIcon>{index % 2 === 0 ? <Home/> : <MailIcon />}</ListItemIcon>
<ListItemText primary={text} />
</ListItem>
))}
<List/>
从“../assets/svgs/Home.svg”导入{ReactComponent as Home};
从“@material ui/core”导入{List,ListItem,ListItemIcon};
{['Home','Video','Music','Sound','Painting','Images','Heritage','Fashion'].map((文本,索引)=>(
{索引%2==0?:}
))}
我的SVG文件
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512.000000 512.000000"
preserveAspectRatio="xMidYMid meet" width="25px" height="25px">
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M0 2560 l0 -2560 2560 0 2560 0 0 2560 0 2560 -2560 0 -2560 0 0
-2560z"/>
</g>
</svg>
我得到的
我做错了什么?非常感谢您的帮助。我刚刚在这个网站上查看了您的SVG: SVG本身已损坏,我建议您另找一个
如何使用:
从“../assets/svgs/Home.svg”导入主页
?@TasosBu,当我照你说的做时,我得到了这个错误:InvalidCharacterError:未能在“文档”上执行“createElement”:提供的标记名(“/static/media/home.8cdaa428.svg”)不是有效的名称。
希望这能帮助你理解。哦,是的,你使用了CRA。看起来你导入它的方式应该是有效的。你能做Aydin作为答案发布的检查吗?我检查了路径并使用了Chrome开发工具,但一切看起来都很好。多亏了你们,你可能错过了任何其他内容,尽管路径是正确的。SVG坏了,它毁了一切。当我将PNG转换为SVG时,我尝试了另一个转换器,它给了我正确的SVG文件,我让它工作了。