@nutui/nutui-react-taro
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
24 lines (23 loc) • 822 B
JavaScript
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
};