【问题标题】:Importing SVG in React dynamically在 React 中动态导入 SVG
【发布时间】:2021-06-03 02:32:30
【问题描述】:

我正在尝试在我的 React 组件中动态导入 SVG

所以每次我需要一个 svg 时,我都需要传递名称“like”而不是从 '../../assets/svg/like.svg' 导入 { ReactComponent as LikeIcon } 以动态导入它

我在这里找到了解决方案:How to dynamically import SVG and render it inline

效果很好,但是当我构建(npm run build)时,找不到 svg

知道为什么吗?

【问题讨论】:

    标签: reactjs svg


    【解决方案1】:

    如果你使用Webpack,你可以使用require.context

    const svgDir = require.context('../../assets/svg/');
    

    然后:

    <img src={svgDir(`./${filename}.svg`)}
    

    作为 React 组件:

    const svgDir = require.context("!@svgr/webpack!../../assets/svg/");
    
    const Icon = svgDir("./Group 9.svg").default
    

    然后:

    <Icon />
    

    【讨论】:

    • 谢谢你的回答让我明白了这一点:stackoverflow.com/questions/45754739/… 如果有人遇到同样的问题并阅读了这篇文章,我会使用第二个答案
    • 是的,如果你想将它用作反应组件,那么 const svgDir = require.context("!@svgr/webpack!../../assets/svg/");和 const Icon = svgDir("./Group 9.svg").default
    猜你喜欢
    • 2017-04-12
    • 2020-10-18
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 2020-11-07
    相关资源
    最近更新 更多