Heim > Web-Frontend > js-Tutorial > Wie rendere ich dynamische Komponentennamen in React und JSX?

Wie rendere ich dynamische Komponentennamen in React und JSX?

Barbara Streisand
Freigeben: 2024-11-17 13:52:02
Original
305 Leute haben es durchsucht

How to Render Dynamic Component Names in React and JSX?

Dynamische Komponentennamen in React und JSX

In React können Sie durch dynamisches Komponenten-Rendering Komponenten basierend auf ihrem Typ zur Laufzeit erstellen. Betrachten Sie zur Veranschaulichung das folgende Beispiel:

var type = "Example";
var ComponentName = type + "Component";
return <ComponentName />; // Returns <examplecomponent /> instead of <ExampleComponent />
Nach dem Login kopieren

Eine frühere Lösung, die im Thread „Dynamische Komponentennamen von React/JSX“ vorgeschlagen wurde, führte aufgrund von Syntaxunterschieden zu einem Kompilierungsfehler. Alternativ könnte für jede Komponente eine eigene Methode erstellt werden:

newExampleComponent() {
    return <ExampleComponent />;
}

newComponent(type) {
    return this["new" + type + "Component"]();
}
Nach dem Login kopieren

Allerdings erfordert dieser Ansatz eine neue Methode für jede Komponente, was umständlich sein kann.

Glücklicherweise gibt es eine Eine elegantere Lösung besteht darin, den Komponententyp als Zeichenfolge an die Funktion React.createElement() zu übergeben. Diese Funktion rendert die Komponente mithilfe des bereitgestellten Typs. Zum Beispiel:

var MyComponent = Components[type + "Component"];
return <MyComponent />;
Nach dem Login kopieren

Dieser Code wird kompiliert zu:

var MyComponent = Components[type + "Component"];
return React.createElement(MyComponent, {});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie rendere ich dynamische Komponentennamen in React und JSX?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage