UNPKG

@ant-design/react-native

Version:

基于蚂蚁金服移动设计规范的 React Native 组件库

1 lines 1.99 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.default=useItemRef;var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _ref=require("rc-util/es/ref");var React=_interopRequireWildcard(require("react"));var _context=require("../context");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof3(obj)!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function useItemRef(){var _React$useContext=React.useContext(_context.FormContext),itemRef=_React$useContext.itemRef;var cacheRef=React.useRef({});function getRef(name,children){var childrenRef=children&&(0,_typeof2.default)(children)==='object'&&children.ref;var nameStr=name.join('_');if(cacheRef.current.name!==nameStr||cacheRef.current.originRef!==childrenRef){cacheRef.current.name=nameStr;cacheRef.current.originRef=childrenRef;cacheRef.current.ref=(0,_ref.composeRef)(itemRef(name),childrenRef);}return cacheRef.current.ref;}return getRef;}