我有一个禁用预渲染的 Blazor wasm 项目。
当我在计算机上打开该网站时,一切正常。在移动设备上,当我导航时,我会看到一个空白页面。
我不知道问题出在哪里,所以我将显示可能有问题的代码:
<Router AppAssembly="typeof(Program).Assembly">
<Found Context="routeData">
@if (navigationManager.Uri.Contains("/market"))
{
<RouteView RouteData="@routeData" DefaultLayout="typeof(Layouts.MarketLayout)" />
}
else if (navigationManager.Uri.Contains("/user"))
{
<RouteView RouteData="@routeData" DefaultLayout="typeof(Layouts.UserLayout)" />
}
else if (navigationManager.Uri.Contains("/admin"))
{
<RouteView RouteData="@routeData" DefaultLayout="typeof(Layouts.AdminLayout)" />
}
else
{
<RouteView RouteData="@routeData" DefaultLayout="typeof(Layouts.AppMainLayout)" />
}
<FocusOnNavigate RouteData="routeData" Selector="h1" />
</Found>
<NotFound>
</NotFound>
</Router>
主布局中启动了三个异步任务:
protected override async Task OnInitializedAsync()
{
await searchEngine.Initialize();
await purchasesManager.SyncPurchases();
await purchasesManager.SyncPurchases();
}
如果清除缓存,则移动设备首次启动时一切正常。然后重新启动后,一切又崩溃了。
我尝试在更新
StateHasChanged
后显式调用 navigationManager.LocationChanged
。没有结果