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
Libérer: 2024-12-01 04:27:09
original
543 Les gens l'ont consulté

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);
Copier après la connexion

À 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" />
    );
  }
};
Copier après la connexion

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';
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal