#reactjs #material-ui
#reactjs #материал-пользовательский интерфейс
Вопрос:
Я пытаюсь импортировать svg-файл, но как компонент react, но я не вижу фактического значка. Я ожидаю увидеть значок дома, но все, что я вижу, это фигура, заполненная черным цветом.
Что я пробовал
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/>
Мой 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>
Что я получаю
Что я делаю не так? Я был бы очень признателен за вашу помощь.
Комментарии:
1. Как насчет использования:
import Home from '../assets/svgs/home.svg';
?2. @TasosBu, когда я делаю, как вы говорите, я получаю эту ошибку:
InvalidCharacterError: Failed to execute 'createElement' on 'Document': The tag name provided ('/static/media/home.8cdaa428.svg') is not a valid name.
3. Надеюсь, эта статья поможет вам понять.
4. О да, вы используете CRA. Похоже, что способ, которым вы его импортировали, должен работать. Можете ли вы выполнить проверки, которые Айдын опубликовал в качестве ответа?
Ответ №1:
Я только что проверил ваш SVG на этом сайте: http://svg.enshrined.co.uk /
Сам SVG сломан, я предлагаю вам найти другой.
Комментарии:
1. Я проверил путь и использовал инструменты разработчика Chrome, но все выглядит нормально.
2. Возможно, вам не хватает какого-либо другого содержимого, даже если путь указан правильно
3. Спасибо вам всем. SVG был поврежден, и это все испортило. Я попробовал другой конвертер, когда конвертировал PNG в SVG, и он дал мне правильный SVG-файл, и он заработал.