我想比较新旧参数值,并决定基于此参数执行不同的初始化或逻辑。在Blazor怎么办?
答案 0 :(得分:0)
您可以将以前的值存储在var上,例如:
@page "/Counter"
@page "/Counter/{Id}"
<h1>Old Id: @IdSOld;</h1>
<a href="/Counter"> go home </a> |
<a href="/Counter/1"> go home 1 </a> |
<a href="/Counter/2"> go home 2 </a>
@code
{
private string IdOld;
[Parameter] public string Id { get; set; }
protected override async Task OnParametersSetAsync()
{
// copy par value somewhere
IdOld = Id?.ToString() ?? "";
// reset parm (set to null) by yourself
Id=null;
}
}
答案 1 :(得分:0)
//这是内部的,因为用户代码没有已知的用例 比较 // ParameterView实例,即使有,也不太可能 //使用这些相等规则,这些规则专为它们对渲染的影响而设计。
来源:https://github.com/aspnet/AspNetCore/blob/master/src/Components/Components/src/ParameterView.cs(第113行)
阅读其余评论。
注意:ParameterView是以前已知的“对象” ParameterCollection。
现在,如果此功能对您至关重要,则应转到github并告诉他们:
这是内部的,因为没有用户代码的已知用例
不再正确。
当然,您可以在OnParametersSetAsync生命周期方法中将旧值存储在变量中,并将其与新参数值进行比较,但这只是一个变通的解决方法,因此您应该谨慎操作。惊喜在每个角落等着您。
希望这对您有帮助...