如何重用 blazor 组件的代码段?
How to reuse code segment with blazor component?
我不知道它是否可能,但我有一个 switch 语句允许基于值的不同组件。但是我可以看到我想使用这个 switch 语句,blazor 中是否有重用它的选项?
这是我想的代码
@page "/"
@foreach (var widget in _components)
{
switch (widget)
{
case WidgetA:
<WidgetA/>
break;
case WidgetB:
<WidgetB/>
break;
}
}
但是我想多次使用它,有没有办法将它存储在一个函数中我尝试了以下方法,但它没有加载
<div class="row">
<div class="col-md-6">
@foreach (var widget in _components21)
{
switche(widget);
}
</div>
<div class="col-md-6">
@foreach (var widget in _components22)
{
switche(widget);
}
</div>
</div>
private string switche(IComponent widget)
{
string html = "";
switch (widget)
{
case WidgetA:
html = "<WidgetA/>";
break;
case <WidgetB/>:
html = "<WidgetB/>";
break;
}
return html;
}
您可以创建一个包含两个小部件的父组件,然后在父组件的 属性 中,您可以有一个名为 WidgetType 的参数,它定义了您实际想要使用的小部件。
父控件:
@if(WidgetType == "A"){
<WidgetA>
}else{
<WidgetB>
}
@code{
[Parameter] public string WidgetType {get; set;}
}
然后你会在你的for循环中使用它
@foreach (var widget in _components)
{
<ParentWidget @WidgetType=widget.WidgetType>
}
我不知道它是否可能,但我有一个 switch 语句允许基于值的不同组件。但是我可以看到我想使用这个 switch 语句,blazor 中是否有重用它的选项?
这是我想的代码
@page "/"
@foreach (var widget in _components)
{
switch (widget)
{
case WidgetA:
<WidgetA/>
break;
case WidgetB:
<WidgetB/>
break;
}
}
但是我想多次使用它,有没有办法将它存储在一个函数中我尝试了以下方法,但它没有加载
<div class="row">
<div class="col-md-6">
@foreach (var widget in _components21)
{
switche(widget);
}
</div>
<div class="col-md-6">
@foreach (var widget in _components22)
{
switche(widget);
}
</div>
</div>
private string switche(IComponent widget)
{
string html = "";
switch (widget)
{
case WidgetA:
html = "<WidgetA/>";
break;
case <WidgetB/>:
html = "<WidgetB/>";
break;
}
return html;
}
您可以创建一个包含两个小部件的父组件,然后在父组件的 属性 中,您可以有一个名为 WidgetType 的参数,它定义了您实际想要使用的小部件。
父控件:
@if(WidgetType == "A"){
<WidgetA>
}else{
<WidgetB>
}
@code{
[Parameter] public string WidgetType {get; set;}
}
然后你会在你的for循环中使用它
@foreach (var widget in _components)
{
<ParentWidget @WidgetType=widget.WidgetType>
}