以下是示例代码:
NavMenu.razor 文件:
@using Microsoft.AspNetCore.Components.Authorization @inject AuthenticationStateProvider AuthenticationStateProvider
@code { private bool isAuthenticated;
protected override async Task OnInitializedAsync()
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
isAuthenticated = authState.User.Identity.IsAuthenticated;
AuthenticationStateProvider.AuthenticationStateChanged += OnLoginStateChanged;
}
private void OnLoginStateChanged(Task task)
{
isAuthenticated = task.Result.User.Identity.IsAuthenticated;
StateHasChanged();
}
}
在 NavItem 标记中使用 @if 语句: