簡體   English   中英

事件回調<dynamic>拋出 RuntimeBinderException</dynamic>

[英]EventCallback<dynamic> throws RuntimeBinderException

使用默認模板我修改了計數器:

@code {
    private int currentCount = 0;

    private async void IncrementCount()
    {
        currentCount++;

        await UpdateCallback.InvokeAsync(new { Counter = currentCount });
    }

    [Parameter] public EventCallback<dynamic> UpdateCallback { get; set; }
}

我正在這樣使用它:

<Counter UpdateCallback="(d)=>MyCallback(d,42)"></Counter>

@code {

    public void MyCallback(dynamic val, int number)
    {

    }
}

這將導致

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:'無法將類型'void'隱式轉換為'object''

如果我傳遞一個Tuple<dynamic>它可以工作。

這是為什么?

您使用 InvokeAsync 進行了調用,因此它需要一個返回任務不無效的方法。 在您使用 Counter 組件的地方使用它,我認為這將解決您的問題。

<Counter UpdateCallback="async (d)=> await MyCallback(d,42)"></Counter>

@code {

    public async Task MyCallback(dynamic val, int number)
    {

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM