From 64a233b3c2c1ba3c60b8cf46bb099f73d1bc0f72 Mon Sep 17 00:00:00 2001 From: Diego <2248356998@qq.com> Date: Thu, 19 Dec 2024 16:32:30 +0800 Subject: [PATCH 1/5] =?UTF-8?q?TreeView=20=E4=BF=AE=E5=A4=8D=20IsReset=20?= =?UTF-8?q?=E4=B8=BAfalse=E6=97=B6=EF=BC=8CItems=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E5=90=8E=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index 6fd7f2c6a03..277168412a5 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -351,7 +351,6 @@ protected override async Task OnParametersSetAsync() { if (IsReset) { - _rows = null; TreeNodeStateCache.Reset(); } else @@ -374,6 +373,9 @@ protected override async Task OnParametersSetAsync() } } + //重新计算节点 + _rows = null; + // 设置 ActiveItem 默认值 ActiveItem ??= Items.FirstOrDefaultActiveItem(); ActiveItem?.SetParentExpand, TItem>(true); From ba01579f3c750fa753cf7acfb22190639d11f8ef Mon Sep 17 00:00:00 2001 From: Argo-AsicoTech Date: Thu, 19 Dec 2024 17:36:22 +0800 Subject: [PATCH 2/5] refactor: support Items null --- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index 6fd7f2c6a03..3d76b50c05e 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -378,6 +378,10 @@ protected override async Task OnParametersSetAsync() ActiveItem ??= Items.FirstOrDefaultActiveItem(); ActiveItem?.SetParentExpand, TItem>(true); } + else + { + _rows = null; + } } /// From 5389616525f9064faa905d609cedcd8dfc6e2ccc Mon Sep 17 00:00:00 2001 From: Argo-AsicoTech Date: Thu, 19 Dec 2024 17:51:49 +0800 Subject: [PATCH 3/5] feat: support null items --- src/BootstrapBlazor/Components/TreeView/TreeView.razor | 6 +++++- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor b/src/BootstrapBlazor/Components/TreeView/TreeView.razor index 166ac93b5d8..b780feb36f3 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor @@ -6,7 +6,11 @@ @if (Items == null) { - if (ShowSkeleton) + if (_init) + { + + } + else if (ShowSkeleton) { } diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index 3d76b50c05e..9744f91000c 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -315,6 +315,8 @@ public partial class TreeView : IModelEqualityComparer .AddClass(item.CssClass) .Build(); + private bool _init; + /// /// /// @@ -377,10 +379,13 @@ protected override async Task OnParametersSetAsync() // 设置 ActiveItem 默认值 ActiveItem ??= Items.FirstOrDefaultActiveItem(); ActiveItem?.SetParentExpand, TItem>(true); + _init = true; } else { _rows = null; + TreeNodeStateCache.Reset(); + ActiveItem = null; } } From 87246215d82fa446a6199b0f1a0066365363180e Mon Sep 17 00:00:00 2001 From: Argo-AsicoTech Date: Thu, 19 Dec 2024 17:51:55 +0800 Subject: [PATCH 4/5] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TreeViewTest.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/UnitTest/Components/TreeViewTest.cs b/test/UnitTest/Components/TreeViewTest.cs index ea1d49c2390..ab08bee173f 100644 --- a/test/UnitTest/Components/TreeViewTest.cs +++ b/test/UnitTest/Components/TreeViewTest.cs @@ -26,6 +26,13 @@ public void Items_Ok() pb.Add(a => a.Items, TreeFoo.GetTreeItems()); }); cut.Contains("li"); + + cut.SetParametersAndRender(pb => + { + pb.Add(a => a.Items, null); + pb.Add(a => a.ShowSkeleton, false); + }); + Assert.Equal("", cut.Markup); } [Fact] From 80e504be15af054e802ba003168b18564b386f9b Mon Sep 17 00:00:00 2001 From: Argo-AsicoTech Date: Thu, 19 Dec 2024 17:57:15 +0800 Subject: [PATCH 5/5] =?UTF-8?q?revert:=20=E6=92=A4=E9=94=80=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs index e90c9d9fb9d..9744f91000c 100644 --- a/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs +++ b/src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs @@ -353,6 +353,7 @@ protected override async Task OnParametersSetAsync() { if (IsReset) { + _rows = null; TreeNodeStateCache.Reset(); } else @@ -375,9 +376,6 @@ protected override async Task OnParametersSetAsync() } } - //重新计算节点 - _rows = null; - // 设置 ActiveItem 默认值 ActiveItem ??= Items.FirstOrDefaultActiveItem(); ActiveItem?.SetParentExpand, TItem>(true);