我有一个如下所示的基本组件:
CatalogTableBase.razor.cs(CatalogTableBase.razor 的代码隐藏)
public class CatalogTableBase<T>
{
[Parameter]
public IEnumerable<Feature<T>>? FeatureList { get; set; }
[Parameter]
public List<string>? FeatureGroupProperties { get; set; }
[Parameter]
public bool ShowHeader { get; set; } = true;
}
现在,我想创建 2 个不同的子组件,它们一次实现一个 string
作为一般传递的类型,一次实现一个 double
。
FeatureRangeCatalogTable.razor
@inherits CatalogTableBase<double>
<div>
...
</div>
这会引发 CS0115错误。 (FeatureRangeCatalogTable.BuildRenderTree(RenderTreeBuilder):找不到合适的方法来覆盖)
我猜抛出的错误与解释器不知道如何处理 @inherits
行有关。
我无法思考为什么这行不通。继承后面代码中的类 (FeatureRangeCatalogTable.razor.cs
) 也不起作用。
TL:DR
如何在 blazor 组件中实现通用基类?
最佳答案
CatalogTableBase 必须在 ComponentBase 或类似的组件之后继承,才能使 BuildRenderTree 可用 docs
关于c# - Blazor 组件 - 从通用 BaseClass 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76754787/