【问题标题】:Unable to override OnAfterRenderAsync in client side blazor无法在客户端 blazor 中覆盖 OnAfterRenderAsync
【发布时间】:2020-03-04 08:57:10
【问题描述】:

在我的 Blazor 客户端应用程序中,我尝试使用

覆盖 OnAfterRenderAsync
@code {
    protected override async Task OnAfterRenderAsync()
    {

    }
}

我收到一个错误

没有合适的方法来覆盖!?

另一方面,这种覆盖效果很好:

protected override async Task OnInitializedAsync()
{

}

有什么线索吗?

【问题讨论】:

    标签: blazor blazor-client-side


    【解决方案1】:

    试试这个

    @code {
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
    
        }
    }
    

    注意 OnAfterRenderAsync 和 OnAfterRender 都有一个布尔参数,你可以调用 firstRender

     protected override async Task OnInitializedAsync()
        {
    
        }
    

    确实,这应该没有问题,因为这是 OnInitializedAsync 的正确方法签名

    【讨论】:

      【解决方案2】:

      引用ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 9升级现有项目

      • OnAfterRender()OnAfterRenderAsync() 实现替换为OnAfterRender(bool firstRender)OnAfterRenderAsync(bool firstRender)

      自从 NET Core 3.0 Preview 9 OnAfterRender 接收一个布尔参数,让方法知道这是否是第一次渲染。避免自己控制它非常有用:

      如何将旧代码替换为新代码的示例,红色旧代码,绿色新代码。

      【讨论】:

        猜你喜欢
        • 2020-04-29
        • 2020-12-13
        • 2019-10-03
        • 2020-04-06
        • 1970-01-01
        • 1970-01-01
        • 2021-06-19
        • 2021-03-14
        • 1970-01-01
        相关资源
        最近更新 更多