You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React项目引入SVG报Cannot read properties of null(tagName)错误求助

解决React项目引入SVG时的Cannot read properties of null (reading 'tagName')错误

可能的原因及对应解决方案

1. 检查SVG文件有效性

该错误大概率是svg-parser无法解析你的SVG文件导致的,先确认文件本身没问题:

  • 直接用浏览器打开customer-delight-logo.svg,看能否正常显示
  • 打开文件内容,确保根标签是<svg>且结构完整,没有未闭合的标签、语法错误或空内容

2. 处理webpack与react-scripts的冲突

你的项目同时使用了react-scripts(自带SVG处理逻辑)和自定义webpack配置,两者可能产生冲突:

  • 如果不需要自定义webpack,删除dev脚本及webpack、webpack-cli、webpack-dev-server等相关依赖,直接用npm start启动项目
  • 如果必须自定义webpack,需在webpack配置文件中正确配置SVG loader:
    module.exports = {
      module: {
        rules: [
          {
            test: /\.svg$/i,
            issuer: /\.[jt]sx?$/,
            use: ['@svgr/webpack', 'file-loader'],
          },
        ],
      },
    };
    
    注意:使用react-scripts时,建议通过craco或eject修改内置配置,而非直接添加独立的webpack.config.js

3. 修改SVG引入方式

如果仅需将SVG作为图片引入而非React组件,可跳过@svgr/webpack的解析:

  • 在import时添加?url后缀:
    import Logo from '../../Utility/assets/customer-delight-logo.svg?url';
    
  • 或者在webpack配置中单独用file-loader处理SVG:
    {
      test: /\.svg$/,
      use: ['file-loader'],
    }
    

4. 重置依赖

可能是依赖版本不兼容导致的问题,尝试重置依赖:

rm -rf node_modules package-lock.json
npm install

内容的提问来源于stack exchange,提问作者texter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:27:18