Importez des fichiers SVG animés dans Next.js 13
import Image from "next/image"; export default function Home() { return ( <main className="flex h-screen flex-col items-center"> <div className="container mt-12 flex flex-col items-center justify-center gap-4 px-4 py-8"> <object type="image/svg+xml" data="/images/blaze-hero-animation.svg"> svg hero animation </object> </div> <Image src="/images/blaze-hero-animation.svg" alt="hero animation" width={500} height={500} /> </main> ); }
La balise object me donne un svg animé, mais avec une couleur de fond blanc (le svg original avait un fond transparent. L'image me donne un svg transparent, mais sans aucune animation. Dois-je utiliser SVGR ou autre chose ? C'est dans Next.js 13.
Je veux juste importer mon fichier svg animé transparent. Je ne veux pas jouer avec SVGR parce que je ne pense pas que je devrais l'utiliser.
Vous pouvez créer un composant React pour envelopper votre SVG comme ceci :
Ici, j'utilise Tailwind CSS combiné avec un thème pour déterminer si le SVG doit utiliser une couleur claire ou foncée (
-light
和-dark
est juste une couleur personnalisée).Consultez également le Site Web React SVGR qui convertit automatiquement SVG en composants React.
Attention
J'utilise Typescript pour exécuter des balises comme
next build
时遇到了问题,这些 SVG 的主体内有
sur certains SVG.J'ai essayé différentes solutions mais aucune ne semblait fonctionner, j'ai donc simplement changé l'extension de fichier de
.tsx
替换为.jsx
et la construction s'est bien déroulée.