我正在尝试渲染一个包含沿路径文本的内联SVG元素的React组件。这是从渲染方法返回的内容:
这显示了“我们上升,然后下降,然后再次上升”的文本,但仅以从0,0开始的直线形式呈现。将生成的html复制到Codepen中,即可显示使用textPath应该具有的结果。为什么在使用ReactJS渲染时会忽略textPath呢?已尝试使用_dangerouslySetInnerHTML来处理textPath,但也没有奏效。使用的是React 15.3.1,并在FF 52.0.2(32位)中检查。
<div className="textsvg">
<svg width="100%" height="100%" viewBox="-50 -50 100 100">
<defs>
<path id="textPathTop" d={`
M 0 40
A 40,40 0 0 1 0,-40
A 40,40 0 0 1 0,40`}></path>
<path id="textPathBottom" d={`
M 0 -41.8
A 41.8,41.8 0 0 0 0,41.8
A 41.8,41.8 0 0 0 0,-41.8`}></path>
</defs>
<use xlinkHref="#textPathBottom" fill="none" stroke="red"></use>
<text fill="red" fontSize="4.5"><textPath xlinkHref="#textPathBottom">We go up, then we go down, then up again</textPath></text>
</svg>
</div>
这显示了“我们上升,然后下降,然后再次上升”的文本,但仅以从0,0开始的直线形式呈现。将生成的html复制到Codepen中,即可显示使用textPath应该具有的结果。为什么在使用ReactJS渲染时会忽略textPath呢?已尝试使用_dangerouslySetInnerHTML来处理textPath,但也没有奏效。使用的是React 15.3.1,并在FF 52.0.2(32位)中检查。