Wenn ich meine reaktive native App auf meiner iPhone Expo ausführe, wird dieser Fehler im roten Hintergrund angezeigt.
Invariante Verletzung: Der Elementtyp ist ungültig: Es wurde eine Zeichenfolge erwartet (für integrierte Komponenten) oder eine Klasse/Funktion (für zusammengesetzte Komponenten), aber got: object. Sie Hat wahrscheinlich vergessen, Ihre Komponente aus der Datei zu exportieren, in der sie definiert ist.
dies ist die App.js im Ordner 'src/components /'
import React, { Component } from 'react';
import { View, Text } from 'react-native';
export default class App extends Component {
render() {
return (
<View>
<Text>Hello</Text>
</View>
);
}
}
Dies ist das Hauptprogramm "App.js" im Ordner "Reactative App".
import App from './src/components/App';
Ich habe Expo-App zum Ausführen dieses Codes verwendet. Wie kann ich diesen Fehler beheben?
Expo erwartet, dass Sie eine Komponente aus /App.js
exportieren. Im Moment importieren Sie jedoch nur in /App.js
. Expo erhält keine Komponente zum Rendern. Sie müssen die importierte Komponente folgendermaßen exportieren:
export default App;
Nebenbei bemerkt: Verwenden Sie eine Klassenkomponente nur wenn Sie müssen.
In meinem Fall statt so zu exportieren:
export default App;
... habe ich wie folgt exportiert:
export {LoginForm};
Es hat ganz gut funktioniert.
Ich hatte diesen Fehler, weil ich meinen Export im folgenden Stil ohne Angabe eines Standardexports ausgeführt habe. Ich habe keine Standardeinstellung angegeben, da ich mehrere kleine Komponenten aus einer Datei exportiert habe.
export const Modal = (props) => (
<div className="someClass">
</div>
)
Ich konnte es zum Laufen bringen, indem ich der import-Anweisung eckige Klammern hinzufügte.
import {Modal} from '../components/Modal.js'
ich hatte das gleiche Problem und ich setzte export default
vor class yourclassname extends Component
in App.js ein