通过重写 BlazorComponent.BuildRenderTree(RenderTreeBuilder builder) 创建一个组件

Creating a component by overriding BlazorComponent.BuildRenderTree(RenderTreeBuilder builder)

我正在学习 Blazor。 https://learn-blazor.com/

我在通过覆盖 BlazorComponent class.

BuildRenderTree(RenderTreeBuilder builder) 方法时在 C# 中创建组件时遇到了一些困难

这是我的 class:

   public class TestComponent : BlazorComponent
    {
        protected override void BuildRenderTree(RenderTreeBuilder builder)
        {
            builder.OpenElement(1, "p");
            builder.OpenElement(2, "strong");
            builder.AddContent(3, "hello");
            builder.CloseElement();
            builder.CloseElement();

            base.BuildRenderTree(builder); // With or without this line it doesn't work
        }
    }

我在我的页面中这样使用它:

<TestComponent></TestComponent>

我已经在使用和不使用最后一行 base.BuildRenderTree(builder); 的情况下对其进行了测试,但无论哪种方式它都不会呈现。我把组件做得非常简单(只有一个段落标签、强标签和一个内容词)所以我不知道为什么它不会呈现。代码构建得很好。

谁能看出我做错了什么?

首先不要再使用那个网站了。我通过该网站了解了 Blazor。这是一个很棒的网站,这个人做得非常出色。但遗憾的是,他停止更新它,至少在过去的六个月里是这样。材料变得陈旧无用。现在,我不知道有什么好的替代品。

试试这个:

  1. base.BuildRenderTree(builder); 放在 BuildRenderTree 方法的开头,而不是结尾。

  2. 使用 ComponentBase 而不是 BlazorComponent... BlazorComponent 已死...

  3. 始终以序列参数的值 0 开头。