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

时间:2018-12-02 17:10:25

标签: c# .net blazor

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

通过覆盖BuildRenderTree(RenderTreeBuilder builder)类的BlazorComponent方法,我在用C#创建组件时遇到了一些困难。

这是我的课程:

   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);的情况下进行了测试,但是无论哪种方式它都不会呈现。我已经使该组件幼稚地变得简单了(只是一个段落标签,强标签和一个单词的内容),所以我迷失了为什么它无法呈现。代码构建良好。

有人可以看到我做错了吗?

1 个答案:

答案 0 :(得分:0)

首先,不要再使用该网站。我已经通过该网站了解Blazor。这是一个出色的网站,这家伙做得很出色。但可惜的是,至少在过去六个月中,他停止了对其进行更新。这些材料已经陈旧无用。目前,我还没有任何好的替代方法。

尝试一下:

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

  2. 使用ComponentBase代替BlazorComponent ... BlazorComponent已死...

  3. 对于序列参数,始终以值0开始。