@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
34 lines (33 loc) • 1.23 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useForm;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _formstore = _interopRequireDefault(require("./formstore"));
function useForm(form) {
var defaultFormValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var formRef = (0, _react.useRef)(null);
var _useState = (0, _react.useState)({}),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
forceUpdate = _useState2[1];
var isInit = (0, _react.useRef)(false);
(0, _react.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.default(forceUpdate, defaultFormValue);
formRef.current = formStoreCurrent.getForm();
}
}
return formRef.current;
}