首页 > 解决方案 > 使用对象列表中的值填充 MatBlazor MatAutocompleteList

问题描述

我正在使用 .Net Core 3.1 和客户端 Blazor 开发应用程序。我正在使用MatBlazor组件,但无法加载 MatAutocompleteList。数据从 API 检索并在页面加载时转换为对象列表:

    List<CountryDto> countries = new List<CountryDto>();

    protected override async Task OnInitializedAsync()
    {
        await ReadCountries();
    }

    ...

    async Task ReadCountries()
    {
        ApiResponseDto apiResponse = await Http.GetJsonAsync<ApiResponseDto>( "api/country" );

        if ( apiResponse.StatusCode == 200 )
        {
            countries = Newtonsoft.Json.JsonConvert.DeserializeObject<CountryDto []>( apiResponse.Result.ToString() ).ToList<CountryDto>();
        }
    }

然后我像这样引用自动完成列表中的数据(类似于示例):

<MatAutocompleteList @bind-Value="@church.Country" Items="@countries" Label="Select Country" TItem="CountryDto" CustomStringSelector="@(i => i.Name)" />

无论我如何配置自动完成框,页面都无法加载,并且 Chrome 开发工具会显示一串未处理的错误,以呈现组件。

在此处输入图像描述

我尝试使用示例以不同的方式配置它,但我总是遇到相同的错误。我究竟做错了什么?

标签: blazor-client-sidematblazor

解决方案


这是一个已知的问题。这里解释了一种解决方法。新版本的控件正在开发中,因此希望这个新组件能够解决问题。


推荐阅读