React Native SVG использует неподдерживаемые теги пространства имен JSX. Как установить для throwIfNamespace значение false? - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь использовать kristerkari / react-native-svg-transformer , но после запуска метро получаю следующую ошибку:

error: assets/menu.svg: /user/Projects/mobile/assets/menu.svg: Namespace tags are not supported by default. React's JSX doesn't support namespace tags. You can set `throwIfNamespace: false` to bypass this warning.
  2 | import Svg, { Path } from "react-native-svg";
  3 | 
> 4 | const SvgComponent = props => <Svg overflow="visible" preserveAspectRatio="none" viewBox="0 0 24 24" width={24} height={24} {...props}><Path xmlns:default="http://www.w3.org/2000/svg" d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" vectorEffect="non-scaling-stroke" fill="#949494" /></Svg>;
    |                                                                                                                                              ^^^^^^^^^^^^^
  5 | 
  6 | export default SvgComponent;

Я выполнил инструкции. Я использую React 16.13.1 и RN 0.63.2. Я пытался установить флаг в babel.config. js вот так:

module.exports = {
  presets: [
    'module:metro-react-native-babel-preset',
    { throwIfNamespace: false },
  ],
};

, но он не работает. Любая идея, как я могу обойти предупреждение или, возможно, альтернативный способ иметь возможность импортировать файл SVG без преобразования времени выполнения?

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Я сталкивался с той же проблемой в прошлом, не уверен, что это правильное решение, но удаление xmlns в файле svg сработало для меня

0 голосов
/ 04 августа 2020

Можете ли вы использовать path Svg с помощью того же пакета без трансформатора svg, но вы должны ссылаться на React native.

react-native link react-native-svg-transformer
...