小编Ken*_*iao的帖子

SVG 过滤器无法在 React 中渲染

我正在尝试将 SVG 过滤器(在本例中)加载到使用 React(15.0.1) 的 Web 应用程序中的<feGaussianBlur>图形元素。<rect>代码看起来与此类似

在 component1.js 中:

render(){
   return(
      <defs>
        <filter id='blur'>
          <feGaussianBlur stdDeviation="5" />
        </filter>
      </defs>
      <component2 />
   );
}
Run Code Online (Sandbox Code Playgroud)

在 component2.js 中:

render(){
  <rect x="some_xpos" 
        y="some_ypos"
        height="some_height"
        width="some_width"
        filter="url(#blur)" 
  >
  </rect>
}
Run Code Online (Sandbox Code Playgroud)

所有这些组件都将在同一个 html 页面上呈现,但不知怎的,当整个页面呈现时,过滤器并未应用。我研究了不同的选择:

  • 选项1:将 svg 过滤器导出到公共资产文件夹中自己的 .svg 文件,并url()使用公共 url。由于 Chrome 错误链接而无法使用
  • option2 :将其放入<filter> 整个应用程序呈现的主(也是唯一一个)index.html 文件中。我还将其放在最顶部,用自己的<svg>标签包裹起来。没用。

在我看来,<rect>无法弄清楚过滤器在哪里。我将不胜感激任何关于如何调试这个或加载 svg 过滤器的替代方案的建议。

html javascript svg reactjs

5
推荐指数
1
解决办法
2907
查看次数

标签 统计

html ×1

javascript ×1

reactjs ×1

svg ×1