Blazor WASM:继承不会从Inherited类中渲染标记



这行代码:"基础BuildRenderTree(__builder("不编译。

我正在尝试添加一个基本组件,它将处理每个页面上需要的一些可下载数据。

我可以通过继承传递我的依赖项注入和属性,但我不能从要渲染的基本组件获得标记__生成器未公开,我无法覆盖BuildRenderTree。

有人知道交易是什么吗?

由于您还没有提供任何可供使用的代码,这里有一些代码演示了您可以在标准ComponentBase实现中使用的各种技术。

以下是要继承的基本组件:

// MyBasePage.razor
<h3>MyBasePage</h3>
<p>This is content in the base page</p>
<p>@ChildRenderFragment</p>
@code {
protected RenderFragment Footer(string FooterMessage) => (__builder) =>
{
<div class="col-12 bg-primary text-white p-2 text-lg-center">@FooterMessage</div>
};
protected virtual RenderFragment ChildRenderFragment => (__builder) =>
{
<div>Child Content Goes Here</div>
};
protected virtual RenderFragment? BaseContent { get; set; }
}

和一个继承的页面:

@page "/"
@inherits MyBasePage
@BaseContent
@code {
protected override RenderFragment BaseContent => (builder) => base.BuildRenderTree(builder);
protected override RenderFragment ChildRenderFragment => (__builder) =>
{
<div class="p-2 m-2 bg-dark text-white">
This is the child content
</div>
@this.Footer("Cold Elm Coders")
};
}

代码有点复杂,因为ComponentBase被绑定,因此无法修改提交给Renderer的RenderFragment

如果你想要一个更优雅的解决方案,你需要编写自己的ComponentBase。请看我对这个问题的回答。

相关内容

  • 没有找到相关文章

最新更新