Javascript React忽略svg元素上的xmlns属性
我有一个生成SVG的React组件:Javascript React忽略svg元素上的xmlns属性,javascript,svg,reactjs,Javascript,Svg,Reactjs,我有一个生成SVG的React组件: const SVG = (props) => ( <svg xmlns="http://www.w3.org/2000/svg" { ...props }> {/* ... */} </svg> ) constsvg=(道具)=>( {/* ... */} ) 我使用这个组件直接在页面上显示内联SVG。我也希望能够将SVG导出为.SVG文件。我试过这个: con
const SVG = (props) => (
<svg
xmlns="http://www.w3.org/2000/svg"
{ ...props }>
{/* ... */}
</svg>
)
constsvg=(道具)=>(
{/* ... */}
)
我使用这个组件直接在页面上显示内联SVG。我也希望能够将SVG导出为.SVG文件。我试过这个:
const markup = renderToStaticMarkup(<SVG />) // imported from 'react-dom/server'
const markup=renderToStaticMarkup()//从“react dom/server”导入
然后我对这个标记进行编码,并将其放在一个基本链接元素中。它工作正常,但是SVG文件不正确。React删除xmlns
属性,这是将SVG用作图像所必需的
如何使用我的组件正确导出SVG文件?我找到的唯一解决方案是使用正则表达式将属性添加到呈现的标记中,但这非常难看/ 我一直在等待,因为我知道完整的SVG支持,但我发现(是的,有比以前更多的支持,但是)由于某种原因,缺少了名称空间属性,如:
xmlns
和xmlnsXlink
。出于同样的目的,我需要使用.svg
作为图像。一个优雅的解决方案是创建一个“svg”React组件,其中包含作为道具传递的基本svg属性,当然还包括这个属性