有没有一种方法可以在页面主体初始化之前进行布局初始化(async)



今天我被这个发现惊呆了。对OnInitializedAsync()的Blazor Layout调用是在Pages拥有OnInitializedAsync()之后调用的,例如,当我想获取用户设置并将其缓存在localStorage中时,就会出现问题,这样以后每个页面都可以收集并根据这些设置采取适当的行动。

应该是这样吗?如果是,是否有任何变通方法可以使布局初始化在提交页面初始化之前结束?

或者还有另一种可能性,那就是:假设所有这些调用都是异步的(同时节省了用户设置的localStorageGET(,可能会有一个时间段,其中一个任务比另一个任务完成得更快。

如果您想保持相同的方法,那么您可以尝试使用bool来确定何时在布局中呈现@body标记。

例如:

@if(_isInitComplete)
{
@body
}

@code {
private bool _isInitComplete = false;
protected override async OnInitializedAnsyc()
{
// Do stuff
_isInitComplete = true;
}
}

我最终发现,最好的地方是在身份验证步骤,在那里我可以接收这些额外的数据,将其保存到localStorage,然后可以安全地在每个授权页面上获取。

相关内容

  • 没有找到相关文章

最新更新