rc-hooks
Version:
React Hooks Library.
27 lines (26 loc) • 847 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = require("react");
var useMountedRef_1 = tslib_1.__importDefault(require("../useMountedRef"));
/**
* 返回上一次的 state 或 props 。
*
* @param state 需要记录变化的值。
* @returns 上一次记录的值。
* @example
* const [value, setValue] = useState('');
* // 上一次 state 的值。
* const prevValue = usePrevious(value);
*/
function usePrevious(state) {
var mountedRef = (0, useMountedRef_1.default)();
var prevRef = (0, react_1.useRef)();
var curRef = (0, react_1.useRef)(state);
if (mountedRef.current && curRef.current !== state) {
prevRef.current = curRef.current;
curRef.current = state;
}
return prevRef.current;
}
exports.default = usePrevious;