Skip to content

Commit 16552d2

Browse files
committed
feat: 增加 HandlerException 实现逻辑
1 parent 371cda8 commit 16552d2

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

src/BootstrapBlazor/Components/Tab/TabItemContent.cs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace BootstrapBlazor.Components;
99

10-
class TabItemContent : IComponent
10+
class TabItemContent : IComponent, IHandlerException, IDisposable
1111
{
1212
/// <summary>
1313
/// Gets or sets the component content. Default is null
@@ -18,6 +18,11 @@ class TabItemContent : IComponent
1818
[CascadingParameter, NotNull]
1919
private Tab? TabSet { get; set; }
2020

21+
[Inject, NotNull]
22+
private DialogService? DialogService { get; set; }
23+
24+
private ErrorLogger? _logger;
25+
2126
private RenderHandle _renderHandle;
2227

2328
void IComponent.Attach(RenderHandle renderHandle)
@@ -60,6 +65,12 @@ private RenderFragment RenderItemContent(RenderFragment? content) => builder =>
6065
builder.AddAttribute(2, nameof(ErrorLogger.EnableErrorLogger), enableErrorLogger);
6166
builder.AddAttribute(3, nameof(ErrorLogger.ShowToast), showToast);
6267
builder.AddAttribute(4, nameof(ErrorLogger.ToastTitle), TabSet.ErrorLoggerToastTitle);
68+
builder.AddAttribute(5, nameof(ErrorLogger.OnInitializedCallback), new Func<ErrorLogger, Task>(logger =>
69+
{
70+
_logger = logger;
71+
_logger.Register(this);
72+
return Task.CompletedTask;
73+
}));
6374
builder.CloseComponent();
6475
};
6576

@@ -75,4 +86,20 @@ public void Render()
7586
_key = new object();
7687
RenderContent();
7788
}
89+
90+
/// <summary>
91+
/// HandlerException 错误处理方法
92+
/// </summary>
93+
/// <param name="ex"></param>
94+
/// <param name="errorContent"></param>
95+
public Task HandlerException(Exception ex, RenderFragment<Exception> errorContent) => DialogService.ShowErrorHandlerDialog(errorContent(ex));
96+
97+
/// <summary>
98+
/// IDispose 方法用于释放资源
99+
/// </summary>
100+
public void Dispose()
101+
{
102+
_logger?.UnRegister(this);
103+
GC.SuppressFinalize(this);
104+
}
78105
}

0 commit comments

Comments
 (0)