use-deep-compare-effect.js 372 B

12345678910111213
  1. import { useEffect, useRef } from 'react'
  2. import _ from 'lodash'
  3. export default function useDeepCompareEffect(callback, dependencies) {
  4. const ref = useRef()
  5. return useEffect(() => {
  6. if (_.isEqual(dependencies, ref.current)) {
  7. return
  8. }
  9. ref.current = dependencies
  10. callback()
  11. }, dependencies) // eslint-disable-line react-hooks/exhaustive-deps
  12. }