Я работаю над компонентом React, который должен принимать SVG в качестве реквизита.
У меня есть svg по умолчанию на случай, если опора не предоставлена, но если она предоставлена, то svg по умолчанию можно заменить на ту, которая принята от prop.
Так что компонент похож.
<MySvg src={path to svg or the svg itself} height={20} width={20} fillColor={'red'} />
Все, что должен сделать компонент, это отобразить этот SVG с предоставленными реквизитами. Я ожидаю, что DOM будет примерно таким.
<svg fill={this.props.fillColor} height={this.props.height} width={this.props.width}>
<g>
<rect />
</g>
</svg>
Поскольку каждый SVG отличается, то есть может иметь многоугольник, прямоугольник, g и т. Д., Как лучше всего это сделать?
2 вещи, которые я ищу?
- Загрузка SVG с пути и применение реквизита (цвет, высота, ширина)?
- Если src prop имеет сам SVG, как мы можем отобразить это и применить реквизит (цвет, высота, ширина)
Обновление: Я опробовал один из подходов в ответах ниже, но, похоже, он не работает. Вот ссылка на CodeSandbox, который у меня на месте - codesandbox.io / s / n0yzv9yyvp