blazor - 覆盖 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 页面中的生命周期挂钩?
解决方案
“你可以在没有支持类的情况下覆盖 Razor 页面吗?”这个问题的答案。是是的。
推荐阅读
- session - 如何通过 Mockito 模拟超类中的方法?
- flutter - “keytool”在 Flutter 中未被识别为内部或外部命令、可运行程序或批处理文件
- python - 在Python中删除包含子字符串的字典中的值
- sql - SQL Server:使用 dm_exec_describe_first_result_set 和表变量触发 CREATE_TABLE 触发器
- python - 如何在一定范围内计算减法后的结果
- android - Pixel3 ACTION_VIEW 不会针对图像以外的其他文件启动
- javascript - 从nodejs中的数组中分组类似的字符串
- python - 未调用 Wedge 的 pick_event 处理程序
- ios - 在导航控制器中如何实现添加按钮打开一个新的视图控制器
- python - 格式化字符串并写入