Изучаю Blazor Server и столкнулся с такой интересной проблемой (фичей не знаю). Есть вот такой компонент header:
<AuthorizeView>
<NotAuthorized>
<NavLink class="p-4 font-medium hover:bg-(--header-btn-hover)" href="/registration">Вход</NavLink>
</NotAuthorized>
<Authorized>
<li class="main-navigation-list__item flex items-center w-full md:hidden">
<NavLink class="p-4 font-medium hover:bg-(--header-btn-hover) w-full text-center" href="/profile">Профиль</NavLink>
</li>
<li class="main-navigation-list__item flex items-center w-full md:hidden">
<button class="p-4 font-medium hover:bg-(--header-btn-hover) cursor-pointer w-full text-center" @onclick="@Logout">Выйти</button>
</li>
//Dropdown menu
<details class="dropdown hover:cursor-pointer select-none hidden md:block">
<summary class="p-4 bg-black border-none list-none shadow-none text-(--white-900) font-normal hover:bg-(--header-btn-hover) hover:rounded-none">@authState.User.Identity.Name</summary>
<ul class="menu dropdown-content rounded-box z-1 shadow-sm bg-black w-full">
<li class="main-navigation-list__item flex items-center w-full">
@if (NavManager.ToBaseRelativePath(NavManager.Uri) == "profile")
{
<span class="p-4 font-medium w-full text-center cursor-auto">Профиль</span>
}
else
{
<NavLink class="p-4 font-medium hover:bg-(--header-btn-hover) w-full text-center" href="/profile">Профиль</NavLink>
}
</li>
<li class="main-navigation-list__item flex items-center w-full">
<button class="p-4 font-medium hover:bg-(--header-btn-hover) cursor-pointer w-full text-center" @onclick="@Logout">Выйти</button>
</li>
</ul>
</details>
</Authorized>
</AuthorizeView>
Данные об аутентификации получаю при инициализации компонента:
protected override async Task OnInitializedAsync()
{
ClientDownloadUrl = Configuration.GetValue<string>("GameServer:ClientUrl");
authState = await AuthStateProvider.GetAuthenticationStateAsync();
}
Все бы ничего, все работает отлично, JWT токен сохраняется и считывается с него имя пользователя, НО, каждый раз, когда я обновляю страницу и пользователь уже залогинен, то происходит "мерцание" пункта меню, который отвечает за вывод имени пользователя - сначала показывается надпись "Вход" и только затем она меняется на "имя пользователя".
Хотел бы узнать, какие есть способы решения данной проблемы, или это фича? Пробовал использовать PersistentComponent, но результата это не принесло.