我有一个用例,可以在SVG中动态附加标签。我曾经使用Jquery追加元素。当我检查DOM元素时,我看到elem
附加在占位符上。尽管我曾经使用this.forceUpdate();
来渲染/更新DOM,但是该标签并未反映在UI中。
componentDidMount(){
let elem = `<g transform="translate(0 8)">
<path d="M121,164.5V140l0,0h110l0,0v24.5c0,3.3-2.7,6-6,6h-98C123.7,170.5,121,167.8,121,164.5z"/>
<text transform="matrix(1 0 0 1 130 162)" fill="white">Label1</text>
</g>`;
let svgTargetDiv = $('#Group_599');
svgTargetDiv.after(elem);
this.forceUpdate();
}
render(){
return {
<div>
<svg id="Group_599">
<g>...</g>
<path>...</path>
<g>...</g>
/*placeholder to insert labels in the svg dynamically from API response*/
</svg>
</div>
}
}
我做错了什么?这是解决此用例的正确方法吗?我也曾在反应中使用refs
,但无法定位嵌套元素并附加标签。这就是我使用Jquery的原因。任何帮助将不胜感激:)