Joe*_*ore 2 c# blazor visual-studio-2019
我已经对这个错误做了我可以做的研究,只是不理解正确的解决方案。
示例代码(直接取自供应商示例)
https://blazor.syncfusion.com/documentation/menu-bar/getting-started/
<SfMenu Items="@MenuItems"></SfMenu>
@code {
public List<MenuItem> MenuItems = new List<MenuItem>{
new MenuItem{ Text = "File", Items = new List<MenuItem>{
new MenuItem{ Text= "Open" },
new MenuItem{ Text= "Save" },
new MenuItem{ Text= "Exit" }}
},
new MenuItem{ Text = "Edit", Items = new List<MenuItem>{
new MenuItem{ Text= "Cut" },
new MenuItem{ Text= "Copy" },
new MenuItem{ Text= "Paste" }}
},
new MenuItem{ Text = "View", Items = new List<MenuItem>{
new MenuItem{ Text = "Toolbars" },
new MenuItem{ Text = "Zoom" },
new MenuItem{ Text = "Full Screen" }}
},
new MenuItem{ Text = "Tools", Items = new List<MenuItem>{
new MenuItem{ Text= "Spelling & Grammar" },
new MenuItem{ Text= "Customize" },
new MenuItem{ Text= "Options" }}
},
new MenuItem{ Text = "Go" },
new MenuItem{ Text = "Help" }
};
}
Run Code Online (Sandbox Code Playgroud)
这将生成 BL0005 组件参数“文本”不应设置在其组件之外。它将使用所有参数执行此操作。
这是设置要传递给子组件的变量的代码。我看不到其他设置方法。组件没有提供单独的 setter。我真的不明白 VS 团队希望我如何构建和传递这些数据(如果他们的代码编译时出现相同的警告,显然供应商也不会)。
谁能提供一个具体的例子来说明应该如何做到这一点?
我已经阅读了在 blazor 中改变组件属性的正确方法,但在这种情况下我显然无法修改子组件,因为它是第三方库。
用 [Parameter] 修饰的属性不应该通过代码设置,因为 OnParametersSet 生命周期方法不会被调用,所以它们只能由 razor 标记中的父组件设置。
在您的情况下,因为值不会改变,所以忽略这些警告应该没问题。如果您在代码隐藏文件 (MyComponent.razor.cs) 中创建菜单项,则可以执行此操作
public partial class MyComponent
{
protected override void OnInitialized()
{
#pragma warning disable BL0005
// create the menu structure here
#pragma warning restore BL0005
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
358 次 |
最近记录: |