Verwenden von jsx/react und versuchen, eine Funktion aus einer anderen Datei zu importieren. Das ist mein jsx:Wie man Modul in jsx importiert?
import React from 'react';
import {sayHello} from './stuff'
export class Arrow extends React.Component {
cb =() => { // the class property is initialized with an arrow function that binds this to the class
console.log('testing=cb clicked')
}
render() {
console.log('testing=sayHello()',sayHello())
return (
<button onClick={ this.cb }>Click</button>
);
}
}
Der Versuch, die sayHello zu importieren, die wie folgt aussieht:
const sayHello =() => 'say hello'
export default sayHello
Als ich die jsx laufen bekomme ich diesen Fehler:
Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in
Es hat funktioniert, aber warum muss ich {} mit Pfeil und nicht mit sayHello verwenden? –
Mit 'export class Arrow ...' müssen Sie 'import {Arrow} ...' verwenden, während Sie bei 'export default class Arrow ...' 'import Arrow ...' verwenden müssen. Im ersten Fall kann es mehrere 'export ...' Anweisungen in einer Datei geben und daher muss Ihre import-Anweisung in der Lage sein, mehrere Variablen zu importieren, indem diese potentielle Liste von Variablen in geschweifte Klammern gesetzt wird. Mit 'export default ...' kann nur ein einziger Export von dieser Datei ausgeführt werden, und daher kann die import-Anweisung sicher behaupten, dass sie eine einzelne Variable importiert, d. H. 'Import myVariable ...'. –
großartige erklärung danke –