Skip to content

Commit 883d3ae

Browse files
committed
feat: 增加重新渲染方法调用
1 parent 0be570d commit 883d3ae

2 files changed

Lines changed: 31 additions & 2 deletions

File tree

src/components/BootstrapBlazor.DockView/Components/DockViewV2.razor.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,20 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
172172
{
173173
await base.OnAfterRenderAsync(firstRender);
174174

175+
if (_renderActiveTabs)
176+
{
177+
_renderActiveTabs = false;
178+
await InvokeVoidAsync("reloadActiveTab", Id);
179+
return;
180+
}
181+
182+
if (_renderActiveTabs)
183+
{
184+
_renderInactiveTabs = false;
185+
await InvokeVoidAsync("reloadInactiveTab", Id);
186+
return;
187+
}
188+
175189
if (!firstRender)
176190
{
177191
await InvokeVoidAsync("update", Id, GetOptions());
@@ -261,6 +275,12 @@ public async Task PanelVisibleChangedCallbackAsync(string title, bool status)
261275
}
262276

263277
private HashSet<string> _activeTabs = new();
278+
private bool _renderActiveTabs = false;
279+
280+
/// <summary>
281+
///
282+
/// </summary>
283+
/// <param name="tabs"></param>
264284
[JSInvokable]
265285
public Task LoadActiveTabs(List<string> tabs)
266286
{
@@ -271,11 +291,19 @@ public Task LoadActiveTabs(List<string> tabs)
271291
_activeTabs.Add(tab);
272292
}
273293

294+
_renderActiveTabs = true;
274295
StateHasChanged();
275296
return Task.CompletedTask;
276297
}
277298

278299
private HashSet<string> _inactiveTabs = new();
300+
private bool _renderInactiveTabs = false;
301+
302+
/// <summary>
303+
///
304+
/// </summary>
305+
/// <param name="tabs"></param>
306+
[JSInvokable]
279307
private Task LoadInactiveTabs(List<string> tabs)
280308
{
281309
// 客户端请求渲染当前未激活的标签
@@ -285,6 +313,7 @@ private Task LoadInactiveTabs(List<string> tabs)
285313
_inactiveTabs.Add(tab);
286314
}
287315

316+
_renderInactiveTabs = true;
288317
StateHasChanged();
289318
return Task.CompletedTask;
290319
}

src/components/BootstrapBlazor.DockView/Components/DockViewV2.razor.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ export async function init(id, invoke, options) {
4242
EventHandler.on(document, 'changed.bb.theme', updateTheme);
4343
}
4444

45-
export function reloadActiveTab() {
45+
export function reloadActiveTab(id) {
4646
const dock = Data.get(id)
4747
if (dock) {
4848
const { dockview } = dock;
4949
dockview.reloadActiveTab();
5050
}
5151
}
5252

53-
export function reloadInactiveTab() {
53+
export function reloadInactiveTab(id) {
5454
const dock = Data.get(id)
5555
if (dock) {
5656
const { dockview } = dock;

0 commit comments

Comments
 (0)