UNPKG

@nutui/nutui-react

Version:

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

38 lines (37 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "usePropsValue", { enumerable: true, get: function() { return usePropsValue; } }); var _react = require("react"); var _useforceupdate = require("./use-force-update"); function usePropsValue(param) { var value = param.value, defaultValue = param.defaultValue, finalValue = param.finalValue, _param_onChange = param.onChange, onChange = _param_onChange === void 0 ? function onChange(value) {} : _param_onChange; var forceUpdate = (0, _useforceupdate.useForceUpdate)(); var dfValue = defaultValue !== undefined ? defaultValue : finalValue; var stateRef = (0, _react.useRef)(value !== undefined ? value : dfValue); if (value !== undefined) { stateRef.current = value; } var setState = (0, _react.useCallback)(function(v) { var forceTrigger = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; var 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 ]; }