我用代碼創建了一個SVG矩形,我試圖在React中渲染。我嘗試了不同的東西,包括危險的SetInnerHTML,但沒有成功。如何在Reactjs中渲染代碼生成的SVG?
在下面的例子中,'return t'起作用,'return svgRectElement'不起作用。
如何返回由svgRectElement生成的svg?謝謝!
public render() {
let svgRectElement: SVGRectElement = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
svgRectElement.setAttributeNS(null, 'width', "300");
svgRectElement.setAttributeNS(null, 'height', "300");
svgRectElement.setAttributeNS(null, 'id', "myrect");
var t: JSX.Element = <rect width="300" height="100" id="myrect"></rect>;
return t;
}
不要在渲染函數中創建DOM節點。這不是如何反應的作品。如果您需要繞過React,請在componentDidMount函數中創建它,並將其附加到您的渲染函數返回的內容。進一步閱讀https://github.com/ryanflorence/react-training/blob/gh-pages/lessons/05-wrapping-dom-libs.md –
謝謝安迪。正如我在下面告訴Scarysize,我想要做的是使用SnapSvg生成我的svg,使用動態屬性(x,y等),然後使用React進行渲染。我想你和他都提出了相同的技術解決方案。 –