当在 loader
,action
或者组件 render 中抛出错误时,Servite 会捕获这些错误,然后展示在页面上:
如果想自定义这个错误展示,可以在路由文件中导出 ErrorBoundary
组件:
// src/pages/page.tsx
export function ErrorBoundary() {
return <div>🫨 啊噢,出错啦!</div>
}
在多层嵌套的路由结构中,当底层的页面组件抛出错误时,错误会逐层“冒泡”,最终在最近的 ErrorBoundary
里被捕获并展示。
例如这样的路由结构:
当 <Settings />
渲染发生错误时,会先寻找 /dashboard/settings/page.tsx
里导出的 ErrorBoundary
组件,
<App />
和 <Dashboard />
则会照常渲染。ErrorBoundary
所捕获。