继承组件时的 Blazor linter 问题
Blazor linter problem when inheriting a component
我有一个简单的组件叫做
BaseGrid.razor
然后我有另一个组件叫做
CustomGrid.razor
@inherits BaseGrid
...
@{
base.BuildRenderTree(__builder);
}
...
使用 Rider 时 __builder 被标记为红色标语
cannot resolve symbol '__builder'
但项目构建得很好
将 ReSharper 与 Visual Studio
一起使用时也会出现此问题
我不知道这是 ReShaper 问题还是 Visual Studio 也有这个问题,但是看到所有文件都用红色下划线让我很头疼,因为我试图找到文件有真正的问题
在您的情况下,问题是 Razor 编译器设法解释了您编写的代码并且偶然起作用。在代码视图中 Visual Studio 不知道 __builder 存在:它只存在于 C# class 中,Razor 编译器从 Razor 文件构建。
这是您向我们展示的内容的我版本,在语法上“更”正确(不确定这是正确的表达方式,但这是我现在能想到的最好的表达方式)。它不会抛出错误,因为 Visual Studio 理解 RenderFragment
.
的概念
基础网格
<h3>BaseGrid</h3>
@code {
}
网格
我将基础 BuildRenderTree
方法分配给 RenderFragment
委托,然后将组件设置为渲染渲染片段。
@inherits BaseGrid
<h3>Grid</h3>
@baseRenderFragment
@code {
RenderFragment? baseRenderFragment;
protected override void OnInitialized()
{
baseRenderFragment = base.BuildRenderTree;
}
}
然后看起来像这样:
我有一个简单的组件叫做 BaseGrid.razor
然后我有另一个组件叫做 CustomGrid.razor
@inherits BaseGrid
...
@{
base.BuildRenderTree(__builder);
}
...
使用 Rider 时 __builder 被标记为红色标语
cannot resolve symbol '__builder'
但项目构建得很好
将 ReSharper 与 Visual Studio
一起使用时也会出现此问题我不知道这是 ReShaper 问题还是 Visual Studio 也有这个问题,但是看到所有文件都用红色下划线让我很头疼,因为我试图找到文件有真正的问题
在您的情况下,问题是 Razor 编译器设法解释了您编写的代码并且偶然起作用。在代码视图中 Visual Studio 不知道 __builder 存在:它只存在于 C# class 中,Razor 编译器从 Razor 文件构建。
这是您向我们展示的内容的我版本,在语法上“更”正确(不确定这是正确的表达方式,但这是我现在能想到的最好的表达方式)。它不会抛出错误,因为 Visual Studio 理解 RenderFragment
.
基础网格
<h3>BaseGrid</h3>
@code {
}
网格
我将基础 BuildRenderTree
方法分配给 RenderFragment
委托,然后将组件设置为渲染渲染片段。
@inherits BaseGrid
<h3>Grid</h3>
@baseRenderFragment
@code {
RenderFragment? baseRenderFragment;
protected override void OnInitialized()
{
baseRenderFragment = base.BuildRenderTree;
}
}
然后看起来像这样: