javascript - 无法使用 React js 显示本地文件夹中的 svg

标签 javascript reactjs svg

我需要什么:我正在尝试显示来自外部文件夹的 svg 并且该文件夹包含大约 50 个文件和

public folder
  |-images
        -| 50 svgs

在 app.js 中

我正在尝试显示图像

import React from 'react';
import './App.css';
import svgs from "../public/svgfolder/0.svg"
class App extends React.Component{

   render(){
     return(
       <div>
         <img src={svgs} alt="test"></img>
       </div>
     )
   }
}

export default App;

我遇到了错误

Module not found: You attempted to import ../public/svgfolder/0.svg which falls outside of the project src/ directory. Relative imports outside of src/ are not supported.

这里我需要3样东西

  1. 我们如何在 React 中动态显示 50 个 svg?
  2. 有些人建议对 web pack 进行更改,这是正确的方法吗?我的意思是它也可以在生产中使用吗?
  3. 我们必须使用公用文件夹还是任何其他文件夹?
  4. React 支持 svg 吗?

注意:如果我通过 url <img src={"https://s.cdpn.io/3/kiwi.svg"}/> 调用 svg ,

它正在工作,如果同样使用本地文件则不是

如果你把svg单个文件放在src文件夹下,那么单个文件就可以显示了

最佳答案

React 不允许访问在 React 代码中使用的 src 目录之外的内容。

可能的解决方案可能是:

  • 将您的 svg 移动到 src 目录中(推荐)。

  • 使用公用文件夹并像这样访问它。 ( Using Public Folder )

.

// Using Public Folder
import React from 'react';
import './App.css';
class App extends React.Component{
  render(){
    const svgs = ["0.svg", "23.svg",...];
    return(
       <div>
         {svgs.map(svg => 
            <img src={`${process.env.PUBLIC_URL}/svgfolder/${svg}`} alt="test"></img>
         }
       </div>
     )
   }
}

export default App;

关于javascript - 无法使用 React js 显示本地文件夹中的 svg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56260773/

相关文章:

javascript - 如何播放WebRTC录制的音频流 block ?

javascript - 如何暂停 JavaScript 动画事件

javascript - 如何通过单击按钮创建表单加载项?

javascript - React.createElement : type should not be null, 未定义、 bool 值或数字。它应该是一个字符串(对于 DOM 元素)或一个 ReactClass

javascript - 在 Chrome 扩展中从 Javascript 获取 reactInstance

javascript - D3 中的 svg 亮度滤镜

javascript - FabricJs - 通过 SVG 对象剪切区域

javascript - 文件 API 在 Safari 中不工作

javascript - 在 map 上渲染多个元素 google-map-react

复杂多变路径上的 SVG 文本路径文本布局