Nextjs - Cannot be used as a JSX component

En souhaitant optimiser le First Load JS si vous chargez les composants dynamiquement comme le précise la doc NextJS

il est possible de tomber sur une erreur de typage à un moment… alors le chargement fonctionne, mais l'erreur vous empêche de builder votre application correctement.

Type error: 'Component' cannot be used as a JSX component.

 

Normalement on charge le composant de cette manière : Exemple avec Lottie react qui m'a posés soucis.

import Lottie from 'lottie-react';

Pour charger dynamiquement, on va supprimer cette ligne et ajouter :

import dynamic from 'next/dynamic'
const Lottie = dynamic(() => import("lottie-react"));

Sauf que dès que vous faites cela, vous avez l'erreur de typage plus haut au moment de build votre application (et VScode vous indique aussi que ce n'est pas bon )

 

 

Type error: 'Component' cannot be used as a JSX component.

On va simplement forcer d'omettre le type pour cette variable, alors ce n'est pas très joli, mais honnêtement, si vous êtes là c'est que vous avez tout essayé

const Lottie_import = dynamic(() => import("lottie-react"));
const Lottie = Lottie_import as any;

Ensuite votre app devrait builder correctement