2016-08-09 2 views
0

У меня возникли проблемы во время разработки реакции. Я используюКак управлять встроенным svg-узлом, используя реакцию?

<img src="example.svg"> 

Или с помощью модуля «срабатывают-inlinesvg» встроить SVG

<Isvg src="example.svg" wrapper={React.DOM.div}> 

я хочу, чтобы манипулировать <g> узел файла SVG непосредственно реагировать, добавлять и удалять класс (пс: в JQuery это довольно просто). Я попытался получить ref элемента, но не смог. что мне делать?

ответ

0

Есть 2 варианта:

  • Используйте какой-селекторов запросов;
  • Пользователь реагирует на запись SVG;

Я бы порекомендовал вам использовать второй подход. Если вы хотите манипулировать собственным SVG, вы можете просто написать их в React как компонент и работать, когда работаете с другими компонентами React.

Here вы можете увидеть список поддерживаемых элементов в React.

+0

Я предпочитаю 1-й подход, но селектор запросов, похоже, плохо работает в компоненте реакции. Для второго, когда я переписываю svg, я нахожу, что существует много ошибок формата, и это сделает компонент немного грязным. Интересно, есть ли лучший способ напрямую манипулировать узлом dom в svg. Большое спасибо. –

+0

Реакт не имеет ничего общего с вашим svg, если вы используете первый подход. Селектор jQuery - это селектор, который, по-видимому, иногда создается поверх встроенного селектора запросов. Если вы действительно хотите использовать селекторы - используйте jQuery, но я не вижу причин для этого, если вы уже используете React. Почему компонент должен быть грязным? Он должен быть на 95% таким же, как у исходного SVG. –

+0

Нарушение большого svg для компонентов сделает слишком большой файл кода, и когда я делю svg на несколько компонентов, будет много ошибок формата в атрибуте 'd' (я уже пробовал), и многие теги должны быть заменены на принятые в React. работа кажется довольно ужасной. Я вижу, что JQuery очень легко манипулирует узлом dom, поэтому мне интересно, есть ли способ, как JQuery в React. Однако я ничего не нашел. В любом случае, спасибо вам большое. –

Смежные вопросы