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 6fd7f2c6a03..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,6 +379,13 @@ protected override async Task OnParametersSetAsync() // 设置 ActiveItem 默认值 ActiveItem ??= Items.FirstOrDefaultActiveItem(); ActiveItem?.SetParentExpand, TItem>(true); + _init = true; + } + else + { + _rows = null; + TreeNodeStateCache.Reset(); + ActiveItem = null; } } 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]