React Router 捕获路由模块中的错误并将其发送到错误边界,以防止错误发生时出现空白页面。但是,ErrorBoundary 不足以用于记录和报告错误。要访问这些捕获的错误,请使用服务器入口模块的 handleError 导出。
如果您在应用程序目录中没有看到entry.server.tsx
,则您正在使用默认入口。使用此 cli 命令显示它
react-router reveal
每当 React Router 在服务器上捕获应用程序中的错误时,都会调用此函数。
import { type HandleErrorFunction } from "react-router";
export const handleError: HandleErrorFunction = (
error,
{ request }
) => {
// React Router may abort some interrupted requests, don't log those
if (!request.signal.aborted) {
myReportError(error);
// make sure to still log the error so you can see it
console.error(error);
}
};