use-callback-ref
Version:
The same useRef, but with callback
24 lines (23 loc) • 549 B
JavaScript
/**
* creates a Ref object with on change callback
* @param callback
* @returns {RefObject}
*
* @see {@link useCallbackRef}
* @see https://reactjs.org/docs/refs-and-the-dom.html#creating-refs
*/
export function createCallbackRef(callback) {
var current = null;
return {
get current() {
return current;
},
set current(value) {
var last = current;
if (last !== value) {
current = value;
callback(value, last);
}
},
};
}