Я хочу создать компонент React для моих значков SVG, но если я использую этот компонент несколько раз (с разными реквизитами) в другом компоненте, он всегда отображает один и тот же значок.
Мой icon.js
компонент:
import { ReactComponent as ArrowDown} from '../assets/icons/icons-line-arrrow-down.svg';
import { ReactComponent as ArrowUp} from '../assets/icons/icons-line-arrrow-up.svg';
const iconTypes = {
arrowDown: ArrowDown,
arrowUp: ArrowUp,
}
const IconComponent = ({name, ...props}) => {
let Icon = iconTypes[name];
return <Icon {...props} />;
};
export default IconComponent
Использование:
import Icon from 'components/Icon';
Работает:
class MyComponent extends React.PureComponent {
render() {
return (
<div>
<Icon name={"arrowDown"}/>
</div>
)}
}
Работает тоже:
class MyComponent extends React.PureComponent {
render() {
return (
<div>
<Icon name={"arrowUp"}/>
</div>
)}
}
Оказывает ArrowDown
значок дважды:
class MyComponent extends React.PureComponent {
render() {
return (
<div>
<Icon name={"arrowDown"}/>
<Icon name={"arrowUp"}/>
</div>
)}
}
Поэтому у меня возникает вопрос: почему только первый значок SVG отображается несколько раз, когда я дважды использую свой компонент, и как это исправить?