* feat: upgrade formily * fix: upgrade @formily/json-schema * fix: optimizing performance * fix: performance code * refactor: `React.memo` and `observer` component add `displayName` property * fix: add cache to Schema.compile * feat: 优化代码 * fix: 修复卡顿最终的问题 * Update SchemaComponentProvider.tsx * feat: 再次优化代码 * feat: optimized code --------- Co-authored-by: dream2023 <1098626505@qq.com>
32 lines
917 B
TypeScript
32 lines
917 B
TypeScript
import React, { useEffect, useState } from 'react';
|
|
import { FormLayout } from '@formily/antd';
|
|
import { Field } from '@formily/core';
|
|
import { observer, RecursionField, Schema, useField, useForm } from '@formily/react';
|
|
|
|
import providerTypes from './providerTypes';
|
|
|
|
const Verification = observer(
|
|
(props) => {
|
|
const form = useForm();
|
|
const field = useField<Field>();
|
|
const [s, setSchema] = useState(new Schema({}));
|
|
useEffect(() => {
|
|
form.clearFormGraph('options.*');
|
|
setSchema(new Schema(providerTypes.get(form.values.type) || {}));
|
|
}, [form.values.type]);
|
|
return (
|
|
<FormLayout layout={'vertical'}>
|
|
<RecursionField
|
|
key={form.values.type || 'sms-aliyun'}
|
|
basePath={field.address}
|
|
onlyRenderProperties
|
|
schema={s}
|
|
/>
|
|
</FormLayout>
|
|
);
|
|
},
|
|
{ displayName: 'Verification' },
|
|
);
|
|
|
|
export default Verification;
|