Проблемы
Я думаю, что есть пара проблем
import Close from './close.svg';
не является допустимым компонентом реакции - Разложите класс в стилизованном компоненте
Решение
Сначала создайте правильный компонент реакции SVG
const CloseIcon = ({ className, ...props }) => (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
{...props}
className={className}
>
<path d="M13.627 12.213l9.9 9.9-1.414 1.414-9.9-9.9-9.9 9.9L.9 22.113l9.9-9.9-9.9-9.9L2.314.9l9.9 9.9 9.899-9.9 1.414 1.415-9.9 9.9z" />
</svg>
);
Второй make modal-icon-close
класс верхнего уровня в стилизованном компоненте
const StyledCloseIcon = styled(CloseIcon)`
&.modal-icon-close {
width: 14px;
height: 24px;
fill: black;
top: 12px;
right: 14px;
}
`;
Отредактируйте, как передать className в svg в стилизованных компонентах
Что для меня не имеет особого смысла, так это зачем усваивать имя класса и CSS, а затем все равно требовать передачи правильного имени класса? Вы можете упростить компонент, также указав опору className
с помощью .attrs
const StyledCloseIcon = styled(CloseIcon).attrs(() => ({
className: 'modal-icon-close',
}))`
&.modal-icon-close {
width: 14px;
height: 24px;
fill: black;
top: 12px;
right: 14px;
}
`;
или просто полностью исключив имя класса
const StyledCloseIcon = styled(CloseIcon)`
width: 14px;
height: 24px;
fill: black;
top: 12px;
right: 14px;
`;