UNPKG

@ccs-design/rc-pro

Version:

ccs design basic react component

51 lines (43 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useShow; var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep")); var _react = require("react"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * 父调用子组件方法,并传值 * @param funcRef ref对象 * @param options { onShow, onFormart, onHide } * @returns T 传输的数据 * -- deprecated */ function useShow(funcRef, options) { var ref = (0, _react.useRef)({}); var callBackRef = (0, _react.useRef)(); var onShow = options.onShow, onFormart = options.onFormart, onHide = options.onHide; var onCallback = function onCallback(e) { callBackRef.current = e; }; (0, _react.useImperativeHandle)(funcRef, function () { return { show: function show(record) { ref.current = (0, _cloneDeep2.default)(record); // 深拷贝,避免值被修改,造成异常 onShow(ref.current); }, hide: function hide(data) { if (onHide) onHide(data); }, getData: function getData() { return callBackRef.current; } }; }); return { record: onFormart ? onFormart(ref.current) : ref.current, onCallback: onCallback }; }