gpt4 book ai didi

c# - 如何检查是否已在 Blazor 中设置属性?

转载 作者:行者123 更新时间:2023-12-04 10:13:38 26 4
gpt4 key购买 nike

我最大的问题是当我有一个可以为 null 的属性时,但我想检查它是否已设置,即使值为 null

MyComponent 里面,我想要区别的是这两种情况

传递 Foo 属性

<MyComponent Foo="@foo" />

@code {
public Foo foo { get; set; }
}

不传递 Foo 属性

<MyComponent  />

但是在 MyComponent 中,在这两种情况下,Foo 都将为 null

即使值是 default 值,我怎么知道正在传递 Foo 属性?

最佳答案

您可以覆盖 SetParametersAsync 方法来检查已设置或未设置的参数。即使值为空。如果未指定参数,它将不会出现在集合中。

例如

@code {

[Parameter]
public Foo Foo { get; set; }

public override async Task SetParametersAsync(ParameterView parameters)
{
foreach(var prm in parameters)
{
System.Diagnostics.Debug.WriteLine($"Name: {prm.Name}");
System.Diagnostics.Debug.WriteLine($"Value: {prm.Value?.ToString()}");
}

await base.SetParametersAsync(parameters);

}
}

文档:https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.componentbase.setparametersasync?view=aspnetcore-3.1

关于c# - 如何检查是否已在 Blazor 中设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61193847/

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