UNPKG

@nutui/nutui-react

Version:

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

28 lines (27 loc) 938 B
import React__default, { useRef, useCallback } from "react"; function useForceUpdate() { const [, updateState] = React__default.useState(); return React__default.useCallback(() => updateState({}), []); } 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 { useForceUpdate as a, usePropsValue as u };