Как получить возвращаемое значение из EventCallback в Blazor? - PullRequest
1 голос
/ 21 апреля 2020

Моя ситуация такова: я пытаюсь реализовать автозаполнение.

Автозаполнение будет иметь Parameter, которое получит string и вернет IEnumerable<TValue>.

Вот пример того, что я пытаюсь сделать

Autocomplete.razor

@code {
    [Parameter]
    public SOME_TYPE GetItems { get; set; }

    async void Foo(){
        IEnumerable<TValue> items = await GetItems(SomeString);
        // do something with items
    } 
}

ParentComponent.razor

<Autocomplete TValue="SomeEntity"
              GetItems="@GetItems" />

@code {        
    SOME_TYPE GetItems(string name) {
        IEnumerable<SomeEntity> entity = await GetEntitys(name);
        return entity;
    } 
}

Проблема в том, что я не не знаю, что положить в SOME_TYPE. Должен ли я использовать EventCallback? Action? Что я должен использовать?

Я пытался использовать EventCallback, но похоже, что я не могу получить возвращаемое значение из EventCallback? Понятия не имею.

1 Ответ

0 голосов
/ 22 апреля 2020

Я просто узнаю, как это сделать, я должен использовать Func<string, Task<IEnumerable<TValue>>>.

[Parameter]
public Func<string, Task<IEnumerable<TValue>>> GetItems { get; set; }

И

public async Task<IEnumerable<Employee>> GetItems(string name) {
    IEnumerable<SomeEntity> entity = await GetEntitys(name);
    return entity;
} 
...