#Variable in layout.ts available everywhere
1 messages · Page 1 of 1 (latest)
Hi @obtuse creek. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
In Next.js, you can handle global errors using a special file called app/global-error.js. This file acts as an error boundary that wraps the entire application. Its fallback component replaces the root layout when active.
Here's an example of how you can define a global-error.js:
'use client'
export default function GlobalError({
error,
reset,
}: {
error: Error
reset: () => void
}) {
return (
<html>
<body>
<h2>Something went wrong!</h2>
<button onClick={() => reset()}>Try again</button>
</body>
</html>
)
}
In this example, the GlobalError component receives an error object and a reset function as props. When an error occurs, this component is rendered, displaying a message and a button to reset the error state.
This approach does not require Redux or any other state management library. The global-error.js file is part of the Next.js framework and is designed to handle global errors in your application.
However, it's important to note that global-error.js must define its own <html> and <body> tags because it replaces the root layout when active.