antd-mobile-taro-ui
Version:
以antd-mobile为设计标准,基于taro框架的微信小程序组件库
31 lines (28 loc) • 813 B
JavaScript
import { __rest } from "tslib";
import React, { useLayoutEffect, useRef } from 'react';
import RcForm from 'rc-field-form';
import isEqual from 'lodash/isEqual';
import { FormContext } from './context';
const Form = props => {
const {
children
} = props,
formProps = __rest(props, ["children"]);
const {
initialValues,
form
} = props;
const preValue = useRef();
useLayoutEffect(() => {
if (initialValues && !isEqual(initialValues, preValue.current) && form) {
preValue.current = initialValues;
form.setFieldsValue(initialValues);
}
}, [form, initialValues]);
return React.createElement(RcForm, Object.assign({}, formProps), React.createElement(FormContext.Provider, {
value: {
value: initialValues
}
}, children));
};
export default Form;