gpt4 book ai didi

c# - 如何在代码中使用 Blazor 组件?

转载 作者:行者123 更新时间:2023-12-03 23:26:50 24 4
gpt4 key购买 nike

我正在尝试完成类似于下面的代码的事情,但我似乎无法弄清楚如何去做。

@page "/"

<div>@test</div>
@code {
[Parameter]
public string Animal { get; set; }

private BaseComponent test { get; set; }

protected override async Task OnInitializedAsync()
{
switch (Animal)
{
case "Cat": test = <Cat>Fluffy</Cat>; break;
case "Dog": test = <Dog>Woff</Dog>; break;
default: test = <p>None</p>
}
}
我还希望能够将组件放入字典中,例如 new Dictionary<string, BaseComponent> { {"cat", <Cat>test</Cat> }}有任何想法吗?

最佳答案

使用 RenderFragments 是可能的:

private Dictionary<string, RenderFragment> switcher 
= new Dictionary<string, RenderFragment>(StringComparer.CurrentCultureIgnoreCase)
{
{ "cat" , __builder => { <Cat> It's a Cat </Cat> } },
{ "dog" , __builder => { <Dog> It's a Dog </Dog> } },

};
然后在@code 之外,
@switcher["Cat"]

但是,这是否是最佳解决方案在很大程度上取决于确切的用例,以及使用 <Animal> 时需要多大的灵活性。标签。
例如,您可以将上述内容替换为 <ShowAnimal Animal="Cat" />组件并在标记部分使用(大)switch 语句实现它。

关于c# - 如何在代码中使用 Blazor 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62743965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com