我希望在我的React页面顶部有一个弧形标题。为了避免使用JQuery,我使用SVG。
这是我编写的代码,在React之外可以工作:
<svg width='100%'>
<defs>
<path id="bigArc" d="m0,170 a800,800 0 0 1 800,0"/>
</defs>
<text x="200" fill='#003399' style="font-size: 80px;">
<textPath xlink:href="#bigArc" >
Come on in...
</textPath>
</text>
</svg>
这是我在React return()中的非工作代码:
<svg width='500px'>
<defs>
<path id='bigArc' d='m0,170 a800,800 0 0 1 800,0'/>
</defs>
<text x='200' fill='#003399' style={{ fontSize: 80 }} >
<textPath xlinkHref='#bigArc' >
Come on in...
</textPath>
</text>
</svg>
目前,我的React页面确实显示了“进来吧…”的文字,但它不是弯曲的。看起来React在解释<textPath>
时有些困难。
我没有收到任何控制台错误,我的代码确实构建了,但文本没有遵循弧形路径。
我正在使用ES6、react 0.14.2以及react-dom ^0.14.2。
textPath
变量中使用用户输入,那么这是一个巨大的安全风险。除此之外,如果这是您唯一要做的事情,并且您已经对其进行了净化和检查,则应该没问题。http://facebook.github.io/react/tips/dangerously-set-inner-html.html - Henrik Andersson