Как мне избавиться от предупреждений об ошибках реагирования на изменение атрибутов svg на случай верблюда?
Недавно моя команда обновилась с React 15.1 до 15.3. С этим обновлением приходят эти ошибки:
warning.js:36 Warning: Unknown DOM property stroke-width. Did you mean strokeWidth?
in g
in svg
in div (created by Unknown)
in div (created by Unknown)
in Unknown
warning.js:36 Warning: Unknown DOM property fill-rule. Did you mean fillRule?
in g
in svg
in div (created by Unknown)
in div (created by Unknown)
in Unknown
Я понимаю, что для реакции требуются свойства из нескольких слов, как в случае верблюда, но эти SVG-файлы должны использоваться в нереактивном контексте. Кроме того, они не упоминаются ни в одном файле js или jsx, просто в css как фоновое изображение, подобное этому.
.icon-sprite {
background-image: url('~icons/sprite.svg');
}
@mixin spriteIcon72( $spriteVals ) {
@extend .icon-sprite;
background-repeat: no-repeat;
background-position: nth($spriteVals, 1) nth($spriteVals, 2);
background-size: 1300px 600px;
}
Класс, который будет использовать компонент реагирования, выглядит следующим образом
.active-icon {
@include spriteIcon72($sprite-active);
}
Как я могу заставить React прекратить регистрировать ошибки в консоли по этому поводу?
3 ответа
Если вы используете WebPack, вы можете использовать плагин babel react-html-attrs
Вот:
https://github.com/insin/babel-plugin-react-html-attrs
Из readme автора, плагин делает следующее:
Преобразует атрибуты класса JSX в className, а для атрибутов - в htmlFor, что позволяет копировать и вставлять HTML в компоненты React без необходимости каждый раз вручную редактировать эти конкретные атрибуты.
В этом запросе извлечения, который претендует на решение вашей проблемы, автор добавил несколько других атрибутов для плагина для перевода, включая атрибуты SVG:
https://github.com/insin/babel-plugin-react-html-attrs/pull/5
Измените «ширину штриха» на «strokeWidth». Это не вызовет никаких проблем.
Я не использую WebPack, поэтому решение @fnune мне не помогло. Я исправил это, изменив эти реквизиты в файле SVG. напримерclip-path
вclipPath
stroke-width
вstrokeWidth
,fill-rule
кfillRule
и так далее.