当前上下文中不存在Blazor Return RenderFragment&__Builder& [英] blazor return RenderFragment '__builder' does not exist in the current context

查看:0
本文介绍了当前上下文中不存在Blazor Return RenderFragment&__Builder&的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从组件私有方法返回RenderFragment, 但我收到编译错误:

'__builder' does not exist in the current context

以下是显示该问题的最低代码:

<div>
    @RenderButton(1)
</div>

@code {
    private RenderFragment RenderButton(int number)
    {        
        return builder =>
        {
            <button type="button">@number</button>
        };
    }
}

在我看来,这可能是不可能的/不允许的,如果不是,有什么方法可以避免编写相同的呈现代码?假设我需要在多个循环中使用这个RenderButton方法,如果Else块

编辑:我现在能想到的唯一解决方案是为这些RenderFragment方法创建一个组件

推荐答案

您的代码似乎是针对早期版本的Blazor。

Blazor现在有了一个更优雅的符号,使用templated delegates

private RenderFragment RenderButton(int number) 
{
     return @<button type="button">@number</button>;
}

通常缩写为:

private RenderFragment RenderButton(int number) =>
         @<button type="button">@number</button>;

错误的解释是__builder是一个固定名称,由代码转换程序使用。您还可以像这样修复代码:

// not recommended
private RenderFragment RenderButton(int number)
{        
    return __builder =>
    {
        <button type="button">@number</button>
    };
}

剃须刀编译器能够对@;执行智能切换,并将__builder => ...部分插入到窗帘后面。

这篇关于当前上下文中不存在Blazor Return RenderFragment&__Builder&的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆