UNPKG

@nutui/nutui-react-taro

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

24 lines (23 loc) 822 B
import { useRef, useCallback } from "react"; import { u as useForceUpdate } from "./use-force-update-CudFjCsy.js"; function usePropsValue({ value, defaultValue, finalValue, onChange = (value2) => { } }) { const forceUpdate = useForceUpdate(); const dfValue = defaultValue !== void 0 ? defaultValue : finalValue; const stateRef = useRef(value !== void 0 ? value : dfValue); if (value !== void 0) { stateRef.current = value; } const setState = useCallback((v, forceTrigger = false) => { const prevState = stateRef.current; stateRef.current = v; if (prevState !== stateRef.current || forceTrigger) { forceUpdate(); onChange === null || onChange === void 0 ? void 0 : onChange(v); } }, [value, onChange]); return [stateRef.current, setState]; } export { usePropsValue as u };