@inject IHostEnvironment Env
@code{
private bool _shouldRender = true;
protected override bool ShouldRender()
{
return _shouldRender;
}
protected override async Task OnInitializedAsync()
{
if (!Env.IsDevelopment())
{
NavigationManager.LocationChanged += OnLocationChanged;
}
await base.OnInitializedAsync();
}
private void OnLocationChanged(object sender, LocationChangedEventArgs e)
{
_shouldRender = false;
}
}
@code{
private readonly string _key = Guid.NewGuid().ToString();
}
这样每当路径更改时,_key属性将随机生成一个新值。这样可以强制Blazor重新渲染组件。