// Component A
<div class="component-a">
...
<component-b>
<component-x></component-x>
<component-y></component-y>
</component-b>
...
</div>
ようなスロットを介してカスタムコンポーネントのリストを受け取り、Iは、例えば、Liタグとして、他の成分中の成分XおよびYをラップしたい成分(成分B)を書きました。
// Output
...
<ul>
<li><component-x></component-x></li>
<li><component-y></component-y></li>
</ul>
...
私はそれが動作しない
// Component B
<div class="component-b">
<ul>
<li v-for="item in $slots.default">
<component :is="item"></component>
</li>
</ul>
</div>
てみました。項目はVNodeオブジェクトであり、コンポーネントタグではレンダリングできません。この問題を解決するソリューションはありますか?
編集:私のラッピングコンポーネントはliタグではありません。これはコンポーネントBで設定したカスタムコンポーネントです。コンポーネントAからラップすると、カスタムコンポーネントとその小道具を繰り返し記述する必要があります。
Edit2:レンダリング機能がこの問題を解決する可能性がありますが、私はhtmlテンプレート(単一ファイルコンポーネント)を使用して解決策を探しています。
これはおそらく ' 'のように動作します。なぜなら:オブジェクト参照ではなくコンポネント名が必要だからです。 –
Reiner