docs: add enhanced ErrorBoundary fallback example for React 19 #33975
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
π¦ Pull Request: Add Enhanced ErrorBoundary Example and Docs for React 19
π§ Summary
This PR addresses a user-reported issue β #33967 β where class-based error boundaries in React 19 silently fail to render fallback UI even though
componentDidCatch()
is triggered and errors are logged.After updating to React 19, many teams discovered unusual production behavior:
componentDidCatch
correctly logs errors-β No fallback UI is rendered
What Changed?
examples/error-boundary-react19/
ErrorBoundary.jsx
BuggyComponent.jsx
reset
button)componentStack
rendering in dev modeπ§ Problem This Solves (from #33967)
Behavioral Flow:
Expected:
ErrorBoundary
, the fallback UI should trigger immediately.Actual:
β What's Included in This PR
π
examples/error-boundary-react19/
ErrorBoundary.jsx
: Robust, production-safe implementationBuggyComponent.jsx
: Simulates an error at runtimeApp.jsx
: Demonstrates fallback UI and loggingREADME.md
: Explains root cause, React 19 change, and usage patternπ§ͺ Testing Instructions
Manually tested via:
yarn install
yarn build && yarn preview
getDerivedStateFromError
is defined βcomponentDidCatch
remains intact βgetDerivedStateFromError
is missing βπ§© Advantages Over Current Docs
β Final Thoughts
getDerivedStateFromError
is critical under React 19+π³ CLA Signed