更新 2016-05-27
从 React v15 开始,React 对 SVG 的支持(接近?)100% 与当前浏览器对 SVG 的支持(source)相同。您只需要应用一些语法转换以使其与 JSX 兼容,就像您已经对 HTML ( class→ className, style="color: purple"→ style={{color: 'purple'}})所做的那样。对于任何命名空间(以冒号分隔)的属性,例如xlink:href,删除属性:的第二部分并将其大写,例如xlinkHref。下面是与SVG的例子<defs>,<use>以及内嵌样式:
function SvgWithXlink (props) {
    return (
        <svg
            width="100%"
            height="100%"
            xmlns="http://www.w3.org/2000/svg"
            xmlnsXlink="http://www.w3.org/1999/xlink"
        >
            <style>
                { `.classA { fill:${props.fill} }` }
            </style>
            <defs>
                <g id="Port">
                    <circle style={{fill:'inherit'}} r="10"/>
                </g>
            </defs>
            <text y="15">black</text>
            <use x="70" y="10" xlinkHref="#Port" />
            <text y="35">{ props.fill }</text>
            <use x="70" y="30" xlinkHref="#Port" className="classA"/>
            <text y="55">blue</text>
            <use x="0" y="50" xlinkHref="#Port" style={{fill:'blue'}}/>
        </svg>
    );
}
工作代码笔演示
有关特定支持的更多详细信息,请查看文档支持的 SVG 属性列表。这是(现已关闭)GitHub 问题,它跟踪了对命名空间 SVG 属性的支持。
上一个答案
您可以dangerouslySetInnerHTML通过剥离命名空间属性来执行简单的 SVG 嵌入,而无需使用。例如,这有效:
        render: function() {
            return (
                <svg viewBox="0 0 120 120">
                    <circle cx="60" cy="60" r="50"/>
                </svg>
            );
        }
在这一点上,您可以考虑添加像 一样的propsfill,或者其他任何可能对配置有用的东西。