Files
30-seconds-of-code/snippets/useError.md
Angelos Chalaris f39deb9522 Update to React 18
2023-04-14 20:32:31 +03:00

971 B

title, tags, author, cover, firstSeen
title tags author cover firstSeen
React useError hook hooks,state,effect chalarangelo baloons-field 2021-09-30T05:00:00-04:00

Creates an error dispatcher.

  • Use the useState() hook to create a state variable that holds the error.
  • Use the useEffect() hook to throw the error whenever it's truthy.
  • Use the useCallback() hook to update the state and return the cached function.
const useError = err => {
  const [error, setError] = React.useState(err);

  React.useEffect(() => {
    if (error) throw error;
  }, [error]);

  const dispatchError = React.useCallback(err => {
    setError(err);
  }, []);

  return dispatchError;
};
const ErrorButton = () => {
  const dispatchError = useError();

  const clickHandler = () => {
    dispatchError(new Error('Error!'));
  };

  return <button onClick={clickHandler}>Throw error</button>;
};

ReactDOM.createRoot(document.getElementById('root')).render(
  <ErrorButton />
);