Rendern Sie eine Vue-Komponente dynamisch innerhalb einer anderen Komponente
<p>Verwenden von<strong>Vue 3.2.41</strong>-@heroicons/vue 2.0.14-inertiajs 1.0-vite 4.0.0</p>
<p>Ich verwende dies, um die Vue-Komponente aufzurufen: </p>
<p><code><TimelineItem icon="CalendarDaysIcon" /></code></p>
<p>Die Komponente sieht folgendermaßen aus: </p>
<pre class="brush:php;toolbar:false;"><template>
<component :is="icon> <!-- funktioniert nicht -->
<CalendarDaysIcon /> <!-- funktioniert -->
</template>
<Skript-Setup>
importieren {
CalendarDaysIcon,
} von '@heroicons/vue/20/solid'
const props = defineProps(['icon'])
</script></pre>
<p>Der gerenderte HTML-Code sieht folgendermaßen aus:</p>
<pre class="brush:php;toolbar:false;"><calendardaysicon></calendardaysicon>!-- nicht das, was ich will -->
<svg> ... </svg> <!-- korrekt, aber nicht dynamisch --></pre>
<p>Mit anderen Worten, wenn ich möchte, dass <code><component :is /></code> die Komponente rendert, wird nur ein leerer <code><calendardaysicon></code> gerendert ; markieren. Ich kann sehen, dass es in Kleinbuchstaben geändert wurde, und ich weiß nicht, wie ich es wieder auf PascalCase zurücksetzen kann. Ich bin mir nicht einmal sicher, ob das der Situation helfen würde. </p>
<p>Ich habe den Code etwas vereinfacht, aber die Vollversion wird eine Liste mit 10 verschiedenen Symbolen haben (alle Teile des Heroicons-Pakets verwenden PascalCase-Namen) und ich möchte sie einfach von der Hauptkomponente aus aufrufen können .</p>