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]