UNPKG

antd-mobile

Version:

<img src="https://gw.alipayobjects.com/mdn/rms_ee68a8/afts/img/A*hjjDS5Yy-ooAAAAAAAAAAAAAARQnAQ" alt="logo" width="100%" />

25 lines (22 loc) 594 B
import { useRef } from 'react'; import { useMemoizedFn, useUpdate } from 'ahooks'; export function usePropsValue(options) { const { value, defaultValue, onChange } = options; const update = useUpdate(); const stateRef = useRef(value !== undefined ? value : defaultValue); if (value !== undefined) { stateRef.current = value; } const setState = useMemoizedFn(v => { if (value === undefined) { stateRef.current = v; update(); } onChange === null || onChange === void 0 ? void 0 : onChange(v); }); return [stateRef.current, setState]; }