模块“*.svg”没有导出成员“ReactComponent”

Eli*_*hen 6 svg typescript reactjs create-react-app

我使用 CRA 创建了一个新的 React 应用程序。现在,我想创建一个导出所有图标的索引文件。为此,我将所有图标存储在文件夹中src/icons,并创建了一个索引文件,将图标导出为 React 元素。

问题是,我在尝试导出时收到以下错误ReactComponent

Module '"*.svg"' has no exported member 'ReactComponent'. Did you mean to use 'import ReactComponent from "*.svg"' instead?
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

根据CRA 的文档,这应该可以在不需要声明新模块的情况下工作。

我正在使用react@^16.13.1andreact-scripts@3.4.1应该支持它。

奇怪的是,当我运行代码时,我既没有得到编译错误也没有得到运行时错误。当我使用<ChevronRightIcon />时,图标会相应显示。

小智 7

将声明更改为

declare module '*.svg' {
    import React = require('react')
    export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>
    const src: string
    export default src
}
Run Code Online (Sandbox Code Playgroud)