Попытка использовать решение, сгенерированное последними шаблонами.
- Наличие службы, которая хранит список строк.
- внедрение службы в MainLayout.razor и NavMenu.razor
- У службы есть простые методы: Add, Remove, Items
- . В MainLayout с помощью OnInitializedAsync () добавляются некоторые элементы, такие как
.
protected override async Task OnInitializedAsync()
{
await Task.Run(() =>
{
this.svc.Add("string one");
this.svc.Add("string two");
});
await Task.Run(() => StateHasChanged());
}
В html-фрагменте NavMenu.razor я просто пытаюсь напечатать
@svc.Items.Count
С приведенным выше кодом я не вижу обновления счетчика / обновления, я также могу иметь другой обработчик кнопок в MainLayout для вызова метода svc.Add, но счетчик не обновляется.
Только только когда я пытаюсь использовать какой-либо обработчик btn в navMenu.razor, блазор перерисовывает себя
<button @onclick="SetCurrentTime"> Time </button>
<h4>@time</h4>
void SetCurrentTime()
{
time = DateTime.Now.ToLongTimeString();
}
github-репо для этой проблемы: (нажмите AddString и счетчик должен увеличиваться) https://github.com/pkaushik23/mycodeshares/tree/master/CheckRefreshBlazor
![enter image description here](https://i.stack.imgur.com/Zd0Tv.png)