@utilityjs/use-on-change
Version:
A React hook that invokes a callback anytime a value changes.
14 lines (13 loc) • 522 B
JavaScript
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;