123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
- import { useState, useEvent, useRef, useEffect, } from 'functional-mini/component';
- import { triggerRefEvent } from '../_util/hooks/useReportRef';
- export var useFormItem = function (props) {
- var _a = useState({
- value: undefined,
- status: 'default',
- required: false,
- errors: [],
- }), formData = _a[0], setFormDate = _a[1];
- var formRef = useRef(formData);
- var emitRef = useRef(null);
- useEvent('setFormData', function (values) {
- setFormDate(function (old) {
- var newValue = __assign(__assign({}, old), values);
- formRef.current = newValue;
- return newValue;
- });
- });
- useEvent('getFormData', function () {
- return formRef.current;
- });
- useEvent('on', function (callback) {
- emitRef.current = callback;
- });
- var originalProps = useRef();
- useEvent('getProps', function () {
- return props;
- });
- useEffect(function () {
- return function () {
- emit('didUnmount');
- };
- }, []);
- function emit(event, value, extraInfo) {
- if (emitRef.current) {
- emitRef.current(event, value, extraInfo);
- }
- }
- // 这个必须要放在后面。
- triggerRefEvent();
- useEffect(function () {
- emit('deriveDataFromProps', props, originalProps.current);
- originalProps.current = props;
- }, [props]);
- return {
- formData: formData,
- emit: emit,
- };
- };
|