UNPKG

@ant-design/react-native

Version:

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

1 lines 2.29 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.default=useForm;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _rcFieldForm=require("rc-field-form");var React=_interopRequireWildcard(require("react"));var _util=require("../util");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||_typeof(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 toNamePathStr(name){var namePath=(0,_util.toArray)(name);return namePath.join('_');}function useForm(form){var _useRcForm=(0,_rcFieldForm.useForm)(),_useRcForm2=(0,_slicedToArray2.default)(_useRcForm,1),rcForm=_useRcForm2[0];var itemsRef=React.useRef({});var wrapForm=React.useMemo(function(){return form!==null&&form!==void 0?form:(0,_extends2.default)((0,_extends2.default)({},rcForm),{__INTERNAL__:{itemRef:function itemRef(name){return function(node){var namePathStr=toNamePathStr(name);if(node){itemsRef.current[namePathStr]=node;}else{delete itemsRef.current[namePathStr];}};}},getFieldInstance:function getFieldInstance(name){var namePathStr=toNamePathStr(name);return itemsRef.current[namePathStr];}});},[form,rcForm]);return[wrapForm];}