BootstrapBlazor icon indicating copy to clipboard operation
BootstrapBlazor copied to clipboard

自定义组件有未处理异常的时候会重新渲染100次,代码如下

Open wapco opened this issue 2 years ago • 3 comments

@namespace BootstrapBlazor.Components

测试组件

@code { protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender);

    if (firstRender)
    {
        System.Console.WriteLine("=========初始化===========================");
        var i = 0;
        var b = 1 / i;
    }
}

}

wapco avatar Aug 11 '22 08:08 wapco

初始化方法被调用了100次,在wasm模式下。

wapco avatar Aug 11 '22 08:08 wapco

自己捕获处理一下异常

densen2014 avatar Aug 11 '22 08:08 densen2014

有未处理的异常应该跳转到一个异常页面,而不是重新回到出错页面。如果你回到出错页面,页面就会重新渲染,然后又引发你的异常,这个逻辑是没问题的。只是你的处理方式有问题。

j4587698 avatar Aug 11 '22 08:08 j4587698

重复 100 次是微软的代码重复的,我们封装的 ErrorLogger 组件目前还没有能力打断这个,应该加个参数报错后跳转到出错页面,还有一个就是弹窗内的错误最外围的 ErrorLogger 无法捕获到。组件还需要增加功能跟优化,感谢提交 Issue

ArgoZhang avatar Aug 13 '22 05:08 ArgoZhang

明白了,谢谢大家解答

wapco avatar Aug 15 '22 02:08 wapco