reactjs - Modulen '"*.svg"' har ingen exporterad medlem 'ReactComponent'


Jag skapade en ny React-app med CRA. Nu vill jag skapa en indexfil som exporterar alla mina ikoner. För att göra detta har jag sparat alla mina ikoner i min src/icons-mapp och skapat en indexfil som exporterar mina ikoner som React-element.

Problemet är att jag får följande fel när jag försöker exportera ReactComponent:

Module '"*.svg"' has no exported member 'ReactComponent'. Did you mean to use 'import ReactComponent from "*.svg"' instead?

Enligt CRAs dokumentation bör detta fungera utan att behöva deklarera en ny modul.

Jag använder react@^16.13.1 och [email som förväntas stödja det.

Det konstiga är att när jag kör koden får jag varken kompilations- eller körningsfel. När jag använder <ChevronRightIcon /> visas ikonen därefter.

Svar #1

Lägg till en fil var som helst i ditt projekt så här, svg.d.ts

med innehåll

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

Starta om TypeScript-servern i VSCode. Om filen inte fångades upp, ange uttryckligen i din tsconfig.json:

 "include": 
  [...,
    "svg.d.ts"

  ],

Relaterade artiklar