我正在尝试使用kristerkari/react本机-svg-变压器,但运行地铁后会出现以下错误:
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文件而无需运行时转换?
发布于 2020-08-04 10:05:51
我在过去也遇到过同样的问题,不确定它是否是正确的解决方案,但是删除svg文件中的xmlns对我有效。
发布于 2020-08-04 11:27:13
您可以使用路径Svg由相同的包白化变压器svg,但您必须链接到反应本机。
react-native link react-native-svg-transformer发布于 2022-08-01 07:55:11
错误是因为没有使用camel case标记。请注意,这里使用的是jsx (react)。因此,请进行以下更改。
sketch:type转化为sketchTypexmlns:xlink转化为xmlnsXlinkxlink:href转化为xlinkHrefxmlns:default转化为xmlnsDefaultcss类转换为camelCase。https://stackoverflow.com/questions/63244408
复制相似问题