UNPKG

@utilityjs/use-on-change

Version:

A React hook that invokes a callback anytime a value changes.

14 lines (13 loc) 522 B
import useGetLatest from "@utilityjs/use-get-latest"; import usePreviousValue from "@utilityjs/use-previous-value"; import * as React from "react"; var useOnChange = function (value, onChange) { var cachedOnChange = useGetLatest(onChange); var prevValue = usePreviousValue(value); React.useEffect(function () { if (value !== prevValue) cachedOnChange.current(value); // eslint-disable-next-line react-hooks/exhaustive-deps }, [value, prevValue]); }; export default useOnChange;