如果有一个 Blazor 组件并且它具有三个参数,是否可以仅在三个参数之一发生更改时才触发 OnParametersSet 方法中的逻辑?有没有办法检查 OnParametersSet 内哪些参数被更改?
您可以尝试使用 c# 属性 {get;set;} 在设置参数时触发操作。尝试以下操作: 儿童剃须刀
//disable prerender here, or prameter will set twice.
@rendermode @(new InteractiveServerRenderMode(false))
@Para1
@code {
private string para1;
[Parameter]
public string? Para1
{
get
{
return this.para1;
}
set
{
MyAction();
para1 = value;
}
}
private void MyAction()
{
Console.WriteLine("action when para1 is set");
}
}
Home.剃须刀
@page "/"
<Child Para1="test"></Child>
您可以在
SetParametersAsync
中执行类似的操作
[Parameter] public int MessageId { get; set; }
[Parameter] public string? Text { get; set; }
private int _messageId;
private bool _notFirstRender;
public override Task SetParametersAsync(ParameterView parameters)
{
parameters.SetParameterProperties(this);
if (this.MessageId == _messageId && _notFirstRender)
return Task.CompletedTask;
_messageId = this.MessageId;
_notFirstRender = true;
// Run the lifecycle events
return base.SetParametersAsync(parameters);
}