diff --git a/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs b/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs index b6b195dd3fe..d299ef66cb2 100644 --- a/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs +++ b/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs @@ -22,13 +22,13 @@ public class ErrorLogger : ComponentBase, IErrorLogger /// /// [Parameter] - public bool EnableErrorLogger { get; set; } = true; + public bool? EnableErrorLogger { get; set; } /// /// /// [Parameter] - public bool ShowToast { get; set; } = true; + public bool? ShowToast { get; set; } /// /// @@ -62,9 +62,17 @@ public class ErrorLogger : ComponentBase, IErrorLogger [Parameter] public Func? OnInitializedCallback { get; set; } + [Inject] + [NotNull] + private IOptionsMonitor? Options { get; set; } + [NotNull] private BootstrapBlazorErrorBoundary? _errorBoundary = default; + private bool _enableErrorLogger => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger; + + private bool _showToast => ShowToast ?? Options.CurrentValue.ShowErrorLoggerToast; + /// /// /// @@ -102,13 +110,13 @@ protected override void BuildRenderTree(RenderTreeBuilder builder) builder.CloseComponent(); } - private RenderFragment? RenderContent => EnableErrorLogger ? RenderError : ChildContent; + private RenderFragment? RenderContent => _enableErrorLogger ? RenderError : ChildContent; private RenderFragment RenderError => builder => { builder.OpenComponent(0); builder.AddAttribute(1, nameof(BootstrapBlazorErrorBoundary.OnErrorHandleAsync), OnErrorHandleAsync); - builder.AddAttribute(2, nameof(BootstrapBlazorErrorBoundary.ShowToast), ShowToast); + builder.AddAttribute(2, nameof(BootstrapBlazorErrorBoundary.ShowToast), _showToast); builder.AddAttribute(3, nameof(BootstrapBlazorErrorBoundary.ToastTitle), ToastTitle); builder.AddAttribute(4, nameof(BootstrapBlazorErrorBoundary.ErrorContent), ErrorContent); builder.AddAttribute(5, nameof(BootstrapBlazorErrorBoundary.ChildContent), ChildContent); diff --git a/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs b/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs index 5d30ae21cb3..2d449b05501 100644 --- a/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs +++ b/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs @@ -11,9 +11,9 @@ namespace BootstrapBlazor.Components; public interface IErrorLogger { /// - /// 获得/设置 是否开启全局异常捕获 默认 true + /// 获得/设置 是否开启全局异常捕获 默认 null 使用全局配置 值 /// - bool EnableErrorLogger { get; set; } + bool? EnableErrorLogger { get; set; } /// /// 获得/设置 自定义 Error 处理方法 默认 null @@ -23,9 +23,9 @@ public interface IErrorLogger Task HandlerExceptionAsync(Exception ex); /// - /// 获得 是否显示 Error 提示弹窗 默认 true 显示 + /// 获得 是否显示 Error 提示弹窗 默认 null 使用全局配置 值 /// - bool ShowToast { get; } + bool? ShowToast { get; } /// /// 获得 Error Toast 弹窗标题 默认读取资源文件内容 diff --git a/src/BootstrapBlazor/Components/Layout/Layout.razor b/src/BootstrapBlazor/Components/Layout/Layout.razor index a7e689ea1cf..2b1826f1725 100644 --- a/src/BootstrapBlazor/Components/Layout/Layout.razor +++ b/src/BootstrapBlazor/Components/Layout/Layout.razor @@ -126,7 +126,7 @@ } else { - @HandlerMain() diff --git a/src/BootstrapBlazor/Components/Layout/Layout.razor.cs b/src/BootstrapBlazor/Components/Layout/Layout.razor.cs index 191a13a232f..fb28b9cd819 100644 --- a/src/BootstrapBlazor/Components/Layout/Layout.razor.cs +++ b/src/BootstrapBlazor/Components/Layout/Layout.razor.cs @@ -483,10 +483,6 @@ public partial class Layout : IHandlerException, ITabHeader [CascadingParameter] private Task? AuthenticationStateTask { get; set; } - [Inject] - [NotNull] - private IOptionsMonitor? Options { get; set; } - [Inject, NotNull] private IServiceProvider? ServiceProvider { get; set; } @@ -499,10 +495,6 @@ public partial class Layout : IHandlerException, ITabHeader private ITabHeader? TabHeader => ShowTabInHeader ? this : null; - private bool _enableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger; - - private bool _showToast => ShowErrorLoggerToast ?? Options.CurrentValue.ShowErrorLoggerToast; - /// /// /// diff --git a/test/UnitTest/Components/LayoutTest.cs b/test/UnitTest/Components/LayoutTest.cs index fa8c89418d0..2224df22b62 100644 --- a/test/UnitTest/Components/LayoutTest.cs +++ b/test/UnitTest/Components/LayoutTest.cs @@ -535,6 +535,7 @@ public void IHandlerException_Ok() pb.Add(a => a.EnableErrorLogger, true); pb.AddChildContent(pb => { + pb.Add(a => a.EnableErrorLogger, true); // 按钮触发异常 pb.Add(a => a.Main, new RenderFragment(builder => {