From 7636a1f85ed5ac482e03c62de07e8b829dc73fcf Mon Sep 17 00:00:00 2001 From: rektdeckard Date: Mon, 3 Aug 2020 18:22:07 -0400 Subject: [PATCH] ErrorBoundary: use correct types for child components/fallbacks --- src/components/ErrorBoundary/ErrorBoundary.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/components/ErrorBoundary/ErrorBoundary.tsx b/src/components/ErrorBoundary/ErrorBoundary.tsx index cb09123..ae087d9 100644 --- a/src/components/ErrorBoundary/ErrorBoundary.tsx +++ b/src/components/ErrorBoundary/ErrorBoundary.tsx @@ -1,22 +1,29 @@ import React, { ErrorInfo } from "react"; interface ErrorBoundaryProps { - fallback?: JSX.Element; + fallback?: JSX.Element | React.ReactNode; } -export default class ErrorBoundary extends React.Component { - state = { errorMessage: "" }; +interface ErrorBoundaryState { + errorMessage?: string +} + +export default class ErrorBoundary extends React.Component { + constructor(props: any) { + super(props); + this.state = { errorMessage: "" } + } static getDerivedStateFromError(error: any) { return { errorMessage: error.toString() }; } componentDidCatch(error: any, info: ErrorInfo) { - console.error(error); + void(error); console.info(info); } - render() { + render(): JSX.Element | React.ReactNode { if (this.state.errorMessage) { return this.props.fallback ??

{this.state.errorMessage}

; }