首页 > 解决方案 > 覆盖 Blazor razor 文件中的生命周期挂钩

问题描述

我正在尝试制作一个组件来显示从原始日期时间经过的时间。

据我了解,您可以覆盖一些生命周期方法,以便在初始化组件时运行一些代码。但是我遇到了一个奇怪的编译器错误。

这是有问题的组件,Timer.cshtml.

<div>
    <span>It has been @Elapsed.ToString() since @Origin.ToString().</span>
</div>

@functions {
    [Parameter]
    DateTime Origin { get; set; }

    TimeSpan Elapsed { get; set; }

    protected override void OnInit()
    {
        this.Elapsed = new TimeSpan(DateTime.UtcNow.Ticks - Origin.Ticks);
    }
}

dotnet run显示一个奇怪的编译器错误。obj\Debug\netstandard2.0\Pages\Timer.g.cs(34,139): error CS1003: Syntax error, ',' expected [C:\path_to_app\BlazorApp1\BlazorApp1.csproj]

VSCode 中也有这个错误。听起来您必须创建一个支持类来覆盖生命周期方法。真的吗?有没有办法覆盖 Razor 页面中的生命周期挂钩?

标签: blazor

解决方案


“你可以在没有支持类的情况下覆盖 Razor 页面吗?”这个问题的答案。是是的。


推荐阅读