Skip to content

Commit efe6e5f

Browse files
Add basic error boundary documentation (#5605)
Add Error Boundaries documentation for React and Solid Co-authored-by: Cursor Agent <cursoragent@cursor.com>
1 parent 977c9cf commit efe6e5f

File tree

3 files changed

+111
-0
lines changed

3 files changed

+111
-0
lines changed

docs/start/config.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@
9797
"label": "Middleware",
9898
"to": "framework/react/guide/middleware"
9999
},
100+
{
101+
"label": "Error Boundaries",
102+
"to": "framework/react/guide/error-boundaries"
103+
},
100104
{
101105
"label": "Server Routes",
102106
"to": "framework/react/guide/server-routes"
@@ -190,6 +194,10 @@
190194
"label": "Middleware",
191195
"to": "framework/solid/guide/middleware"
192196
},
197+
{
198+
"label": "Error Boundaries",
199+
"to": "framework/solid/guide/error-boundaries"
200+
},
193201
{
194202
"label": "Server Routes",
195203
"to": "framework/solid/guide/server-routes"
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
id: error-boundaries
3+
$title: Error Boundaries
4+
---
5+
6+
## Error Boundaries (React Start)
7+
8+
TanStack Start uses TanStack Router's route-level error boundaries.
9+
10+
- Set a default for all routes via the router
11+
- Override per-route with `errorComponent`
12+
13+
### Configure a default
14+
15+
```tsx
16+
// src/router.tsx
17+
import { createRouter, ErrorComponent } from '@tanstack/react-router'
18+
import { routeTree } from './routeTree.gen'
19+
20+
export function getRouter() {
21+
const router = createRouter({
22+
routeTree,
23+
// Shown when an error bubbles to the router
24+
defaultErrorComponent: ({ error, reset }) => (
25+
<ErrorComponent error={error} />
26+
),
27+
})
28+
return router
29+
}
30+
```
31+
32+
### Per-route override
33+
34+
```tsx
35+
// src/routes/posts.$postId.tsx
36+
import { createFileRoute, ErrorComponent } from '@tanstack/react-router'
37+
import type { ErrorComponentProps } from '@tanstack/react-router'
38+
39+
function PostError({ error, reset }: ErrorComponentProps) {
40+
return <ErrorComponent error={error} />
41+
}
42+
43+
export const Route = createFileRoute('/posts/$postId')({
44+
component: PostComponent,
45+
errorComponent: PostError,
46+
})
47+
```
48+
49+
Notes:
50+
- `ErrorComponent` is a simple built-in UI you can replace.
51+
- Call `reset()` to retry rendering the route after fixing state.
52+
- Use `beforeLoad`/`loader` to throw errors that will be caught.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
id: error-boundaries
3+
$title: Error Boundaries
4+
---
5+
6+
## Error Boundaries (Solid Start)
7+
8+
TanStack Start (Solid) uses TanStack Router's route-level error boundaries.
9+
10+
- Set a default for all routes via the router
11+
- Override per-route with `errorComponent`
12+
13+
### Configure a default
14+
15+
```tsx
16+
// src/router.tsx
17+
import { createRouter, ErrorComponent } from '@tanstack/solid-router'
18+
import { routeTree } from './routeTree.gen'
19+
20+
export function getRouter() {
21+
const router = createRouter({
22+
routeTree,
23+
defaultErrorComponent: ({ error, reset }) => (
24+
<ErrorComponent error={error} />
25+
),
26+
})
27+
return router
28+
}
29+
```
30+
31+
### Per-route override
32+
33+
```tsx
34+
// src/routes/posts.$postId.tsx
35+
import { createFileRoute, ErrorComponent } from '@tanstack/solid-router'
36+
import type { ErrorComponentProps } from '@tanstack/solid-router'
37+
38+
function PostError(props: ErrorComponentProps) {
39+
return <ErrorComponent error={props.error} />
40+
}
41+
42+
export const Route = createFileRoute('/posts/$postId')({
43+
component: PostComponent,
44+
errorComponent: PostError,
45+
})
46+
```
47+
48+
Notes:
49+
- `ErrorComponent` is a simple built-in UI you can replace.
50+
- Call `reset()` to retry rendering the route after fixing state.
51+
- Use `beforeLoad`/`loader` to throw errors that will be caught.

0 commit comments

Comments
 (0)