【问题标题】:How can methods be called when browser's refresh button is clicked?单击浏览器的刷新按钮时如何调用方法?
【发布时间】:2021-08-27 11:36:52
【问题描述】:

我希望在每次加载页面时调用一些方法。 protected override void OnInitialized() 在首次加载和从另一个组件返回时效果很好,但在点击浏览器的刷新按钮时效果不佳。 我尝试了protected override void OnParametersSet()here 以及protected override void OnAfterRender(bool firstRender) 描述的其他方法,但没有任何效果。

非常感谢。

【问题讨论】:

    标签: blazor blazor-webassembly


    【解决方案1】:

    我希望在每次加载页面时调用一些方法。

    使用OnInitialized{async}

    当浏览器的刷新按钮被点击时

    你真的是这个意思吗?那是 SPA 重新启动的时候。如果您只想让您的“方法”运行一次,您可以将它们放在OnInitialized{async} 上的App.razor 中。根据这些需要多长时间,您可以增加应用程序的加载时间。

    注意 - 如果不了解这些“方法”的作用,这只是一个通用答案。

    更新

    这是我的测试页。标准 WASM 托管项目,索引页面。

    时间会在浏览器窗口上的每个<F5> 更新,即TestMe 运行。

    你有调试配置问题吗?

    @page "/"
    
    <h1>Hello, world!</h1>
    
    Welcome to your new app.
    
    <SurveyPrompt Title="How is Blazor working for you?" />
    
    <div>@message</div>
    
    @code {
    
        protected string message;
    
        protected override void OnInitialized()
        {
            TestMe();
            base.OnInitialized();
        }
    
        protected void TestMe()
        {
            message = $"Loaded at: {DateTime.Now.ToLongTimeString()}";
        }
    }
    

    【讨论】:

    • 没有用,可能是我的描述不清楚。我启动我的应用程序并导航到一个组件。该组件包含OnInitialized(),因此我的方法使用输入框中的默认值计算值 A。现在用户可以输入新值,结果是值 B。在此之前,一切正常,但现在可能会发生,用户使用浏览器的刷新按钮。这会导致输入框中的默认值,但不会重新计算,因为OnInitialized() 没有被触发,而且OnInitialisedAsync()OnParametersSet()...
    • 当浏览器刷新时,这会为用户重新启动应用程序 - 也会这样做。 OnInitialized 和其余的都被调用,但使用默认数据 - 没有状态保存。您是否希望保留用户输入的数字?否则,请丢失一些说明您的问题的示例代码。
    • 在 Visual Studio 中,只需创建一个新的 Blazor WebAssembly 应用程序并将 protected override void OnInitialized() { TestMethod(); } private void TestMethod() { var test = 1; } 添加到 Counter.razor 的代码块中。在var test = 1; 处设置断点并运行应用程序。当您单击导航菜单中的计数器按钮时,应用程序会中断,但当您现在按 时不会。但这就是我想要的。
    • 感谢您的更新。非常有趣,时间会更新,但应用程序仅在应用程序启动和 e 时在message = $"Loaded at... 中断。 G。从柜台返回时。当我单击 时它不会中断。你能证实这一点。所以,可能(我目前无法测试)我在我的真实应用程序中没有描述的问题,但只是这么想,因为我的断点不起作用。
    猜你喜欢
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2011-07-26
    相关资源
    最近更新 更多