mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 17:35:16 +00:00
26 lines
607 B
JavaScript
26 lines
607 B
JavaScript
|
import { useEffect, useRef } from 'react';
|
||
|
/**
|
||
|
* Store the last of some value. Tracked via a `Ref` only updating it
|
||
|
* after the component renders.
|
||
|
*
|
||
|
* Helpful if you need to compare a prop value to it's previous value during render.
|
||
|
*
|
||
|
* ```ts
|
||
|
* function Component(props) {
|
||
|
* const lastProps = usePrevious(props)
|
||
|
*
|
||
|
* if (lastProps.foo !== props.foo)
|
||
|
* resetValueFromProps(props.foo)
|
||
|
* }
|
||
|
* ```
|
||
|
*
|
||
|
* @param value the value to track
|
||
|
*/
|
||
|
|
||
|
export default function usePrevious(value) {
|
||
|
var ref = useRef(null);
|
||
|
useEffect(function () {
|
||
|
ref.current = value;
|
||
|
});
|
||
|
return ref.current;
|
||
|
}
|