当前位置: 首页 > 知识库问答 >
问题:

在ReactJS中嵌入SVG

陆昂然
2023-03-14
render: function() {
  return (
    <span>
      <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmln ...
    </span>
  );
}

做这件事最轻的方法是什么。使用像反应艺术这样的东西对我试图做的事情来说是过度的。

共有1个答案

姬乐
2023-03-14

更新2016-05-27

从React v15开始,React中对SVG的支持(接近?)100%与当前浏览器支持的SVG(源代码)奇偶性。您只需要应用一些语法转换来使其与JSX兼容,就像您已经为HTML所做的那样(classclassnamestyle=“color:purple”style={{color:'purple'}})。对于任何命名空间(以冒号分隔)的属性,例如xlink:href,删除:并将属性的第二部分大写,例如xlinkhref。下面是一个具有 和内联样式的svg示例:

function SvgWithXlink (props) {
    return (
        <svg
            width="100%"
            height="100%"
            xmlns="http://www.w3.org/2000/svg"
            xmlnsXlink="http://www.w3.org/1999/xlink"
        >
            <style>
                { `.classA { fill:${props.fill} }` }
            </style>
            <defs>
                <g id="Port">
                    <circle style={{fill:'inherit'}} r="10"/>
                </g>
            </defs>

            <text y="15">black</text>
            <use x="70" y="10" xlinkHref="#Port" />
            <text y="35">{ props.fill }</text>
            <use x="70" y="30" xlinkHref="#Port" className="classA"/>
            <text y="55">blue</text>
            <use x="0" y="50" xlinkHref="#Port" style={{fill:'blue'}}/>
        </svg>
    );
}

工作代码演示

以前的回答

只需剥离命名空间属性,就可以进行简单的SVG嵌入,而不必使用DangerouslySetInnerHTML。例如,这是有效的:

        render: function() {
            return (
                <svg viewBox="0 0 120 120">
                    <circle cx="60" cy="60" r="50"/>
                </svg>
            );
        }

在这一点上,您可以考虑添加诸如fill之类的道具,或者其他任何可能对配置有用的东西。

 类似资料:
  • 问题内容: 是否可以将SVG标记嵌入到ReactJS组件中? 结果错误: 不支持命名空间属性。ReactJSX不是XML。 什么是最简单的方法。使用React React之类的东西对于我想做的事情来说是过大的。 问题答案: 更新2016-05-27 从React v15开始,React中对SVG的支持与当前浏览器对SVG的支持(接近?)达到100%奇偶校验(源)。您只需要应用一些语法转换就可以使其

  • 我正在编写一个小闹钟程序,当闹钟时间到了时,它会播放一个音频文件几次。 程序的报警部分已经完成。现在我开始播放文件。我使用jFileChooser来选择文件。javax . sound . sampled . audio inputstream、javax . sound . sampled . audio system和javax.sound.sampled.Clip来播放我的wav文件。也在工

  • 所以我有下面的问题。我收到一个文件,其中包含一组字体。这些字体没有嵌入到文件中。下面是一个简单的例子: 我希望将这些字体嵌入到中,这样它们就可以自包含并且始终可用。但事情似乎没那么简单。我正在使用进行处理。 我已经阅读并尝试了以下问题/答案: null

  • 问题内容: 我正在使用数据对象作为ReactJS中组件的道具。 我知道容易验证PropTypes对象本身: 但是,如果我想验证其中的值怎么办?即。data.id,data.title? 问题答案: 您可以用来验证属性: 更新资料 正如@Chris在评论中指出的那样,从React 15.5.0版本开始已移至package 。 更多信息

  • 我正在学习反应和反应形式,并试图创建一个动态和可扩展的形式。我已经设置了具有的状态,并基于该类型,显示相应的输入类型(因此它可以是文本、文本区域、单选、选择、日期或复选框)。我试图写一个函数,这样它将动态设置基于的表单输入,但我卡住了试图实现相同的变化。 所以如果,或,等等。 请检查此工作代码沙盒。 看看这个完整的代码片段:- 我仍在努力学习并花时间与ReactJS在一起,因此任何帮助都将不胜感激

  • 问题内容: 我有一个自定义字体,我想在Java程序中炫耀它,用户无需安装就可以查看它。有谁知道这是怎么做到的吗? 工作解决方案 我已经实现了以下内容: 问题答案: 我从未做过,但似乎您想要的方法是 导入字体 或者 该参数是或,而或参数包含字体的二进制数据。 导入后使用字体: 要使Font对Font构造函数可用,必须通过调用在中注册返回的Font 。