【问题标题】:Blazor LocationChanged stops navigation?Blazor LocationChanged 停止导航?
【发布时间】:2020-02-25 17:30:33
【问题描述】:

我有一个带有两个 url 参数的页面:

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

如果我输入一个网址,比如https://somehost:1234/document/abcd/xyz123,页面加载正常。

我已经注册了一个 LocationChanged 事件,它做了一些事情:

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

我遇到的问题是,如果我有一个带有href="/document/klmn/defg9876" 的锚标记链接并单击该链接,我的事件会触发,但我的浏览器无法导航并加载新文档。如果我将NavigateTo(e.Location) 添加到我的事件处理程序中,我会得到一个无限循环。

如何让 Blazor 在处理我的事件后继续导航到 url?

编辑

如果我添加一个返回主页的链接,那么我可以从document 页面转到home 页面。在两个 document 链接之间,浏览器中的 url 会发生变化,但 OnInitialized 不会为新的 url 运行。我显然面临着页面生命周期的挑战。

【问题讨论】:

    标签: blazor blazor-server-side


    【解决方案1】:

    好的,这是我理解页面生命周期的问题。

    我假设每次我的 url 参数更改时都会调用 OnInitialized(),但是当新的 patition 和 document 参数可用时,我必须重写 OnParametersSetAsync() 方法,然后加载我的新文档。

    【讨论】:

      猜你喜欢
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 2013-09-27
      相关资源
      最近更新 更多