在blazor页面上,我们需要从查询字符串中获取数据。
我们使用
OnInitialized
读取数据的事件:
Working with Query Strings in Blazor
例如
protected override void OnInitialized()
{
var uri = NavManager.ToAbsoluteUri(NavManager.Uri);
if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("initialCount", out var _initialCount))
{
currentCount = Convert.ToInt32(_initialCount);
}
}
但我们使用预呈现:
@(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
这个代码
executes two time
.
这是一个问题,因为我们需要用这些参数访问数据库,但我们不想做两次。
禁用预呈现不是一个选项。
尝试将代码移动到其他事件,例如
OnParametersSet
,但它也执行了两次。
也许我们可以检查它事件第一次或第二次执行,并使用这个条件?
或者其他选择?