【问题标题】:Multiple parameters with EventCallback in Blazor without creating a class and pass itBlazor中带有EventCallback的多个参数,无需创建类并传递它
【发布时间】: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


【解决方案1】:

请看以下问题- Blazor EventCallback with Multiple Params - how to respond to event in parent host control

await NewDayScrolledIntoView.InvokeAsync((p1, p2, p3));

<ShiftCardScroller NewDayScrolledIntoView="@((args)=> NewDayInView(args.Item1,args.Item2,args.Item3))" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-30
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2020-04-14
    • 2021-03-18
    • 1970-01-01
    相关资源
    最近更新 更多