Custom error fallback
When something goes wrong in a shape, it won't crash the whole editor. An error fallback gets shown instead, which you can customize by overriding the ShapeErrorFallback
component in the components
prop.
import { Tldraw } from 'tldraw'
import 'tldraw/tldraw.css'
import { ErrorShape, ErrorShapeUtil } from './ErrorShape'
// There's a guide at the bottom of this file!
// [1]
const shapes = [ErrorShapeUtil]
export default function ErrorBoundaryExample() {
return (
<div className="tldraw__editor">
<Tldraw
shapeUtils={shapes}
components={{
// [2]
ShapeErrorFallback: ({ error }) => <div>Shape error! {String(error)}</div>,
}}
onMount={(editor) => {
// [3]
editor.createShape<ErrorShape>({ type: 'error' })
}}
/>
</div>
)
}
/*
This example shows how to customize the error fallback that appears when a shape throws an error. We
simulate this scenario by creating a shape that always throws an error when it renders.
[1]
This is the custom shape that always throws an error when it renders. Check out ErrorShape.ts to see
how it works.
[2]
Pass in the custom error fallback component.
[3]
When the app starts, create our error shape so that we can see the custom error fallback.
*/
Is this page helpful?
Prev
Custom canvas componentsNext
Custom grid