From ec6cb2af83ed9f87f11a7af953bc859474176035 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 12 Sep 2024 09:42:47 +0800 Subject: [PATCH] fix(Select): not trigger OnSelectedItemChanged when click clear icon (#4283) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 清空搜索栏触发 SelectedItemChanged 回调方法 * chore: bump version 8.9.2-beta07 * test: 更新单元测试 --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- src/BootstrapBlazor/Components/Select/Select.razor.cs | 7 ++++++- test/UnitTest/Components/SelectTest.cs | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 6bf9e1e245d..050b7a3e16b 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 8.9.2-beta06 + 8.9.2-beta07 diff --git a/src/BootstrapBlazor/Components/Select/Select.razor.cs b/src/BootstrapBlazor/Components/Select/Select.razor.cs index d1dbf3944c7..9e421165b97 100644 --- a/src/BootstrapBlazor/Components/Select/Select.razor.cs +++ b/src/BootstrapBlazor/Components/Select/Select.razor.cs @@ -432,7 +432,12 @@ private async Task OnClearValue() { await OnClearAsync(); } - CurrentValue = default; + + var item = DataSource.FirstOrDefault(); + if (item != null) + { + await SelectedItemChanged(item); + } } private string? ReadonlyString => IsEditable ? null : "readonly"; diff --git a/test/UnitTest/Components/SelectTest.cs b/test/UnitTest/Components/SelectTest.cs index 601c867822f..3feae3fec5b 100644 --- a/test/UnitTest/Components/SelectTest.cs +++ b/test/UnitTest/Components/SelectTest.cs @@ -97,7 +97,7 @@ public void IsClearable_Ok() new("2", "Test2"), new("3", "Test3") }); - pb.Add(a => a.Value, ""); + pb.Add(a => a.Value, "2"); pb.Add(a => a.OnValueChanged, v => { val = v; @@ -106,7 +106,7 @@ public void IsClearable_Ok() }); var clearButton = cut.Find(".clear-icon"); cut.InvokeAsync(() => clearButton.Click()); - Assert.Null(val); + Assert.Empty(val); // 提高代码覆盖率 var select = cut;