我最大的问题是当我有一个可以为 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);
}
}
关于c# - 如何检查是否已在 Blazor 中设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61193847/