Pourquoi cet exemple ci-dessous ne génère-t-il pas "bonjour le monde"? Au lieu de cela, je reçois:
TypeError: _base2.default.test n'est pas une fonction
(il est en cours de transcription avec Babel)
file1.js
import Example from './file2';
console.log(Example.test());
file2.js
export default class Example {
test() {
console.log('hello world');
}
}
Vous importez uniquement la classe, mais ne créez pas d'instance de la classe
Essayer
var myInstance = new Example()
myInstance.test()
Si vous souhaitez appeler une méthode en tant que méthode de classe (sans créer d'instance d'objet), vous pouvez essayer des méthodes statiques.
Vous pouvez modifier le fichier2.js comme,
export default class Example {
static test() {
console.log('hello world');
}
}
puis appelez-le en utilisant le nom de classe dans file1.js comme
import Example from './file2';
console.log(Example.test());
Reportez-vous James Maa réponse si vous voulez l'appeler comme méthode d'instance.