react-use icon indicating copy to clipboard operation
react-use copied to clipboard

Fixed the launch of the useEffect if the state outside has changed

Open SkutinAnton opened this issue 2 years ago • 2 comments

Description

Fixed the launch of the useEffect if the state outside has changed (makes an extra render)

Example

const useBreakpoint = createBreakpoint();

const Component = () => {
  const breakpoint = useBreakpoint();

  const [count, setCount] = useState(0);

  const onClick = useCallback(() => {
    setCount(value => value + 1);
  }, []);

  console.log(count);

  return (
    <div>
      <button onClick={onClick}>Click</button>
      <p>{count}</p>
      <p>{breakpoint}</p>
    </div>
  );
};

Type of change

  • [x] Bug fix (non-breaking change which fixes an issue)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to not work as before)

Checklist

  • [x] Read the Contributing Guide
  • [x] Perform a code self-review
  • [x] Comment the code, particularly in hard-to-understand areas
  • [x] Add documentation
  • [x] Add hook's story at Storybook
  • [x] Cover changes with tests
  • [x] Ensure the test suite passes (yarn test)
  • [x] Provide 100% tests coverage
  • [x] Make sure code lints (yarn lint). Fix it with yarn lint:fix in case of failure.
  • [x] Make sure types are fine (yarn lint:types).

SkutinAnton avatar Feb 03 '23 18:02 SkutinAnton

Hello, what about this fix?

SkutinAnton avatar Apr 10 '24 12:04 SkutinAnton

Came here to open this same PR after implementing this library.

Causes infinite render and flood of console errors due to missing dependency array.

https://react.dev/reference/react/useEffect#my-effect-runs-after-every-re-render

marcqualie avatar Apr 30 '24 12:04 marcqualie