SVG <textpath>未显示(使用ReactJS)

时间:2018-10-12 03:24:20

标签: javascript css reactjs svg

我无法使我的<textPath>遵循我的SVG路径。我在控制台中看到这个是0x0,但是我无法更改它。我的font-size: 4vw也有一个#svg_text,所以我真的不知道发生了什么。

这是我的JavaScript代码:

return(
        <div key={i*3} id="svg_container">
        <svg
        viewBox="0 0 1532.82 818.45"
        id="svg">
          <path d="M1716,795.37C1392.31,283.32,716.07,130.88,204,454.54"
          transform="translate(-203.18 -283.05)"
          fill="transparent" stroke="#000"/>

          <text id="svg_text">
            <textPath xlinkHref="#curve">
              this is a test - this is a test
            </textPath>
          </text>
          </svg>
        </div>
      )
    }   })

这是我的CSS代码:

#svg_container{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
}

#svg {
  width: 80vw;
  height: 80vh;
}


#svg_text{
  font-size: 4vw;
  font-family: Dia-Bold;
  color: white;
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试一下。看起来React不支持textPath,所以您可以做的是

   const  textPath = `<textPath xlinkHref="#curve">
          this is a test - this is a test
        </textPath>`;

        <text id="svg_text" dangerouslySetInnerHTML={{__html: textPath }}></text>

在根svg元素处为svg和xlink添加xmlns,如下所示:

<svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" viewBox="0 0 1532.82 818.45" id="svg">