如何在Reactjs中呈现代码生成的SVG?

时间:2016-10-02 00:02:26

标签: javascript reactjs svg typescript render

我通过代码创建了一个SVG矩形,我正在尝试在React中渲染。我尝试了不同的东西,包括dangerouslySetInnerHTML,没有成功。

在下面的例子中,'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;
}

1 个答案:

答案 0 :(得分:0)

我不知道如何创建SVG元素以及创建所需的变量,但直接的方法是将其包装到组件中:

const MySvg = props => <svg xmlns="http://www.w3.org/2000/svg">...</svg>;

如果它有一些动态属性(例如样式,类名等),你可以从给定的道具中计算出来。