Skip to content

useRouteError

useRouteError是用于获取路由错误信息的hooks。

如果loader或action抛出错误,会调用ErrorBoundary组件。

tsx
import { createBrowserRouter } from 'react-router'
import Error from '../layout/error'

const router = createBrowserRouter([
    {
        path: '/index',
        Component: Layout,
        children: [
            {
                path: 'home',
                Component: Home,
                loader: async () => {
                    throw {
                        message: 'Home Error',
                        status: 404,
                        statusText: 'Not Found',
                        data: '132131',
                    }
                },
                ErrorBoundary: Error,
            },
        ],
    },
    {
        path: '*',
        Component: NotFound,
    },
]);

在ErrorBoundary组件中,可以通过useRouteError获取到错误信息。

tsx
import { useRouteError } from 'react-router'

export default function Error() {
    const error = useRouteError()
    return <div>{error.message}</div>
}

Released under the MIT License.