【发布时间】:2021-09-26 10:47:05
【问题描述】:
假设Row 是这样的组件:
<div class="row">
<div class="col-6">
@Column1
</div>
<div class="col-6">
@Column2
</div>
</div>
@code
{
[Parameter]
public ComponentBase Column1 { get; set; }
[Parameter]
public ComponentBase Column2 { get; set; }
}
然后假设我们像这样使用它:
<Row Column1="foo" Column2="foo"></Row>
@code {
private readonly SomeComponent foo = new();
private readonly SomeComponent bar = new();
}
我希望一行包含两列,其中包含 foo 和 bar 的渲染组件,但我得到两列包含“Example.Shared.Components.SomeComponent”
那么你如何渲染传递给其他组件的子组件?有没有更好的方法来做到这一点(即 Angular 中的 ng-content 之类的东西?
作为旁注,我正在寻找允许以编程方式(如上)并使用标记(如下)的解决方案:
<Row>
<Column>
<Foo></Foo>
</Column>
<Column>
<Bar></Bar>
</Column>
</Row>
【问题讨论】:
-
你会如何使用它?在 Blazor 中,我们不传递组件的实例,RenderTreeBuilder 实例化它们。并不是说这完全不可能,但它看起来是错误的方式。
-
@HenkHolterman 抱歉,这是一个有点垃圾的例子。我已经更新了整个问题。
标签: c# blazor blazor-webassembly