Blazor LocationChanged останавливает навигацию? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть страница, которая принимает два параметра URL:

@page "document/{partition}/{id}"

Если я наберу URL, скажем, https://somehost:1234/document/abcd/xyz123, страница загружается нормально.

Я зарегистрировал * Событие 1007 *, которое выполняет некоторые вещи:

private async void OnLocationChanged(object sender, LocationChangedEventArgs e)
{
     await DoStuff();
}

Проблема, с которой я столкнулся, заключается в том, что если у меня есть ссылка тега привязки с href="/document/klmn/defg9876" и щелкните ссылку, мое событие будет запущено, но браузер не будет перемещаться и загружаться новый документ. Если я добавлю NavigateTo(e.Location) к своему обработчику событий, я получу бесконечное l oop.

Как мне заставить Blazor перейти к URL после обработки моего события?

РЕДАКТИРОВАТЬ

Если я добавлю ссылку обратно на домашнюю страницу, тогда я смогу go со страницы document на страницу home. Между двумя document ссылками URL-адрес в браузере изменяется, но OnInitialized не запускается для нового URL-адреса. Я, очевидно, бросил вызов жизненному циклу страницы.

1 Ответ

0 голосов
/ 25 февраля 2020

ОК, это была проблема с моим пониманием жизненного цикла страницы.

Я предполагал, что OnInitialized() будет вызываться каждый раз, когда меняются мои параметры URL, но вместо этого мне приходится переопределять метод OnParametersSetAsync(), когда новые параметры patition и document доступны, а затем загрузите мой новый документ.

...