【发布时间】:2022-07-19 22:46:49
【问题描述】:
一年去创建了一个项目,我在这个问题的答案之后传递了多个参数:Blazor EventCallback with Multiple Params - how to respond to event in parent host control
当我现在在 .net 中尝试时,6 不起作用(它正在创建一个类并将参数传递给那里的字段,但对我来说不是干净的解决方案)。
父组件:
<MultipleParamsComp OnHandle="@((args) => await HandleParams(((int, string))args))" />
<p>@BaseId</p>
<p>@BaseString</p>
@code {
private int BaseId = 0;
private string BaseString = string.Empty;
private async Task HandleParams((int, string) args)
{
BaseId = args.Item1;
BaseString = args.Item2;
}
}
子组件:
<h4>Child Component</h4>
<button class="btn btn-primary" @onclick="(() => HandleMultipleParams(id))">
Testing
</button>
@code {
private int id = 0;
private string Name = "something";
[Parameter]
public EventCallback<(int, string)> OnHandle { get; set; }
private async Task HandleMultipleParams(int customerId)
{
customerId++;
await OnHandle.InvokeAsync((customerId, Name));
}
}
输出
严重性代码描述项目文件行抑制状态 错误 CS1001 标识符应为 BlazorTheory E:\Programare\Blazor\BlazorTheory\Microsoft.NET.Sdk.Razor.SourceGenerators\Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator\Theory_EventCallBack_Other_Examples_Passing_multiple_params_in_function_BaseComponent1_razor.g.cs 90 活动
严重性代码描述项目文件行抑制状态 错误 CS0119 'string' 是一种类型,在给定的上下文 BlazorTheory E:\Programare\Blazor\BlazorTheory\Microsoft.NET.Sdk.Razor.SourceGenerators\Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator\Theory_EventCallBack_Other_Examples_Passing_multiple_params_in_function_BaseComponent1_razor 中无效.g.cs 90 活跃
严重性代码描述项目文件行抑制状态 错误 CS0119 'int' 是一种类型,在给定的上下文 BlazorTheory E:\Programare\Blazor\BlazorTheory\Microsoft.NET.Sdk.Razor.SourceGenerators\Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator\Theory_EventCallBack_Other_Examples_Passing_multiple_params_in_function_BaseComponent1_razor 中无效.g.cs 90 活跃
严重性代码描述项目文件行抑制状态 错误 CS0119 'EventCallback' 是一种类型,在给定的上下文 BlazorTheory E:\Programare\Blazor\BlazorTheory\Microsoft.NET.Sdk.Razor.SourceGenerators\Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator\Theory_EventCallBack_Other_Examples_Passing_multiple_params_in_function_BaseComponent1_razor 中无效.g.cs 90 活跃
也许我缺乏一些关于委托或 EventCallback 的理论以及它们如何在幕后工作(任何好的文档链接都有帮助)。
你。
【问题讨论】:
-
当您说“不工作”时请更具体一些 - 您是否遇到编译错误?运行时错误?没有错误,但出现意外行为?发生了什么?
-
为什么要将本地字段作为参数传递给本地非静态成员?你也可以直接使用
id。此外,int是一种值类型,因此将 is 作为参数传递会复制它。id本身永远不会被修改,所以customerId++;将始终给出 1。
标签: blazor