Maison > interface Web > js tutoriel > Comment rendre dynamiquement des composants dans React/JSX ?

Comment rendre dynamiquement des composants dans React/JSX ?

Mary-Kate Olsen
Libérer: 2024-11-15 14:12:02
original
487 Les gens l'ont consulté

How to Dynamically Render Components in React/JSX?

Rendu dynamique des composants dans React/JSX

Le JSX de React permet un rendu déclaratif des composants, mais parfois les développeurs peuvent avoir besoin de restituer dynamiquement des composants basés sur leur type.

Le Problème

Lors de la tentative de rendu dynamique d'un composant à l'aide de l'extrait de code ci-dessous, une erreur se produit :

var type = "Example";
var ComponentName = type + "Component";
return <ComponentName />; // Error: expected XML, got array
Copier après la connexion

L'erreur se produit car le code utilise la syntaxe de tableau alors que JSX attend du XML . D'autres solutions, comme créer une méthode pour chaque composant, ne sont pas élégantes.

La solution

La documentation React fournit désormais une solution officielle pour le rendu dynamique des composants :

const MyComponent = Components[type + "Component"];
return <MyComponent />;
Copier après la connexion

Ce code se compile en :

const MyComponent = Components[type + "Component"];
return React.createElement(MyComponent, {});
Copier après la connexion

La variable MyComponent stocke la classe du composant et est en majuscule. La fonction React.createElement utilise ensuite cette classe pour créer l'élément composant.

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