Maison >interface Web >js tutoriel >Pourquoi est-ce que j'obtiens l'erreur « Violation invariante : le type d'élément n'est pas valide » dans React ?

Pourquoi est-ce que j'obtiens l'erreur « Violation invariante : le type d'élément n'est pas valide » dans React ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-01 04:27:09599parcourir

Why am I Getting the

Type d'élément non valide dans React : erreur "Violation invariante" expliquée

Problème

Les développeurs React rencontrent fréquemment l'erreur "Erreur non détectée : violation invariante : Le type d'élément n'est pas valide : il s'agit d'une chaîne attendue (pour les composants intégrés) ou d'une classe/fonction (pour les composants composites) mais j'ai obtenu : un objet." Cette erreur déroutante provient d'un problème avec le type d'élément transmis aux composants React.

Exemple de code

Considérez le code suivant extraits :

main.js :

import React from 'react';
import ReactDOM from 'react-dom';
import Router from 'react-router';
import App from './components/App';
import About from './components/About';

ReactDOM.render((
  <Router>
    <Route path="/" component={App}>
      <Route path="about" component={About} />
    </Route>
  </Router>
), document.body);

À propos de.jsx :

import React from 'react';
import RaisedButton from 'material-ui/lib/raised-button';

export default class About extends React.Component {
  render() {
    return (
        <RaisedButton label="Default" />
    );
  }
};

Cause de l'erreur

Dans ce cas, l'erreur était due à une divergence dans l'instruction d'importation du composant Home dans main.js. L'utilisation de import {MyComponent} from '../components/xyz.js' au lieu d'import MyComponent from '../components/xyz.js' a entraîné l'erreur. Cette différence dans la syntaxe d'importation peut amener React à interpréter incorrectement le composant importé, entraînant l'erreur « Type d'élément non valide ».

Solution

Pour résoudre le problème, assurez-vous que la syntaxe d'importation correcte est utilisé pour le composant. Dans les environnements Webpack, cela signifie utiliser :

import MyComponent from '../components/xyz.js';

Cette syntaxe importe le composant comme exportation par défaut, ce qui est le comportement attendu pour les composants React.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que sont les fonctions ?Article suivant:Que sont les fonctions ?