web-dev-qa-db-fra.com

Violation invariante réactive-native: le type d'élément n'est pas valide

Lorsque j'exécute mon application native native Rea sur iPhone Expo, cette erreur s'affiche dans la zone d'arrière-plan rouge.

Violation invariante: Le type d'élément n'est pas valide: attend une chaîne (pour les composants intégrés) ou une classe/fonction (pour les composants composites) mais got: object. Vous probablement oublié d'exporter votre composant à partir du fichier dans lequel il est défini.

c'est le fichier App.js dans le dossier '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>
    );
  }
}

C'est le fichier App.js principal dans le dossier de l'application native.

import App from './src/components/App';

J'ai utilisé l'application expo pour exécuter ce code. Comment puis-je résoudre cette erreur?

8
Thimeth Karanayaka

Expo s'attend à ce que vous exportiez un composant à partir de /App.js. Mais pour le moment, vous importez uniquement dans /App.js. Expo ne reçoit aucun composant à rendre. Vous devez exporter le composant que vous avez importé comme ceci:

export default App;

Sur la note de côté: Utilisez un composant de classe uniquement si vous devez.

5
THpubs

Dans mon cas, au lieu d'exporter comme ceci:

export default App;

... j'ai exporté comme suit: 

export {LoginForm};

Cela a fonctionné complètement bien.

4
Masood

j'ai eu le même problème et j'ai mis export default avant class yourclassname extends Component dans App.js

1
Navid Abdolalizade