vantui-edit
Version:
一套适用于Taro3及React的vantui组件库
31 lines (27 loc) • 950 B
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import { useRef, useState, useEffect } from 'react';
import FormStore from './formstore';
export default function useForm(form) {
var defaultFormValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var formRef = useRef(null);
var _useState = useState({}),
_useState2 = _slicedToArray(_useState, 2),
forceUpdate = _useState2[1];
var isInit = useRef(false);
useEffect(function () {
if (formRef.current && !isInit.current && defaultFormValue) {
formRef.current.setFields(defaultFormValue);
forceUpdate({});
isInit.current = true;
}
}, [defaultFormValue]);
if (!formRef.current) {
if (form) {
formRef.current = form;
} else {
var formStoreCurrent = new FormStore(forceUpdate, defaultFormValue);
formRef.current = formStoreCurrent.getForm();
}
}
return formRef.current;
}