๐ย Reference
๐ย Chapter
ErrorBoundary ์ปดํฌ๋ํธ๋ ์ฌ์ ํ ํด๋์คํ ErrorBoundary๋ฅผ ๊ฐ์ธ๊ณ ์๋ค.useErrorBoundary ํ
์ Context๋ฅผ ํตํด ์ด ๋ด๋ถ Boundary ์ธ์คํด์ค์ ์ ๊ทผํด์ ์๋ฌ ํธ๋ฆฌ๊ฑฐ(showBoundary) ์ ๋ฆฌ์
(resetBoundary) ๊ธฐ๋ฅ์ ๋
ธ์ถํ๋ค.npm install react-error-boundary
์์ 1
import { ErrorBoundary, useErrorBoundary } from "react-error-boundary";
function ErrorFallback({ error, resetErrorBoundary }) {
return (
<div>
<h2>๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค ๐ฅ</h2>
<pre>{error.message}</pre>
<button onClick={resetErrorBoundary}>๋ค์ ์๋</button>
</div>
);
}
function BuggyComponent() {
const { showBoundary } = useErrorBoundary(); // ๐ ํ
์ผ๋ก ์ง์ ์๋ฌ ํธ๋ฆฌ๊ฑฐ ๊ฐ๋ฅ
function handleClick() {
try {
throw new Error("ํ
์คํธ ์๋ฌ ๋ฐ์!");
} catch (err) {
showBoundary(err); // ์๋ฌ ๊ฐ์ ํธ๋ฆฌ๊ฑฐ โ fallback ํ์
}
}
return <button onClick={handleClick}>์๋ฌ ๋ฐ์์ํค๊ธฐ</button>;
}
export default function App() {
return (
<ErrorBoundary
FallbackComponent={ErrorFallback}
onReset={() => console.log("reset!")}
>
<BuggyComponent />
</ErrorBoundary>
);
}