web-dev-qa-db-fra.com

NextJS - la fenêtre n'est pas définie

J'essaie d'importer effet de machine à écrire dans mon projet NextJS, mais chaque fois que je le fais, j'obtiens cette erreur qui se lit comme suit:

ReferenceError: la fenêtre n'est pas définie

et d'après ce que j'ai lu, l'erreur s'affiche car elle essaie de charger la bibliothèque côté serveur plutôt que côté client.

Donc quand j'essaye simplement de l'importer comme ceci:

import Typewriter from 'typewriter-effect'

l'erreur s'affiche rapidement.

Les gens m'ont suggéré d'essayer quelque chose comme ceci:

let Typewriter
if (typeof window !== 'undefined') {
  Typewriter = require( 'typewriter-effect' )
}

cependant, cela ne fonctionne pas non plus. J'obtiens une erreur qui se lit comme suit:

Le type d'élément n'est pas valide: attendait une chaîne (pour les composants intégrés) ou une classe/fonction (pour les composants composites) mais a obtenu: non défini.

J'ai cherché dans de nombreux endroits une solution potentielle à ce problème, mais mes tentatives ont échoué.

7
Student22

L'option require devrait fonctionner, je pense que c'est une question d'importation par défaut,

Dans ESM, il s'agit d'une importation par défaut. import Typewriter from 'typewriter-effect'

Le "besoin" égal pour cela est: Typewriter = require( 'typewriter-effect' ).default;

0
felixmosh