1- import React from 'react' ;
1+ import React , { FC } from 'react' ;
22import { Row } from 'antd' ;
33import { FormRenderProps , Item } from './Types' ;
44import ItemRender from './ItemRender' ;
5- export { default as FormSpaceRender } from './SpaceLayout' ;
5+ import { default as FormSpaceRender } from './SpaceLayout' ;
66
77const isType = ( type ) => ( n ) => {
88 return Object . prototype . toString . call ( n ) === `[object ${ type } ]` ;
@@ -16,12 +16,12 @@ const renderTowDimensionLayout = (layoutData) => {
1616 { layoutData . map ( ( arr , idx ) => {
1717 const len = arr . length ;
1818 if ( 24 % len !== 0 ) {
19- throw new Error ( '数组的长度必须能被24整除 ' ) ;
19+ throw new Error ( 'The length of the array must be divisible by 24 ' ) ;
2020 }
2121 const span = 24 / len ;
2222
2323 return (
24- < Row key = { idx } gutter = { { xs : 8 , sm : 16 , md : 24 } } >
24+ < Row key = { idx } >
2525 { arr . map ( ( item , subIndex ) => (
2626 < ItemRender item = { item } key = { subIndex } span = { span } layoutType = "row" />
2727 ) ) }
@@ -48,7 +48,7 @@ const renderTowDimensionLayout = (layoutData) => {
4848 * }
4949 * @return {* } {React.ReactElement}
5050 */
51- export default function FormRenderer ( {
51+ const FormRender : FC < FormRenderProps > = ( {
5252 /**
5353 * 1或2维数组,存储组件配置信息/自定义渲染组件
5454 */
@@ -57,7 +57,7 @@ export default function FormRenderer({
5757 * 定义一行渲染几个组件,layoutData为一维数组时生效, 可以是: 1 | 2 | 3 | 4, 默认1,
5858 */
5959 cols = 1 ,
60- } : FormRenderProps ) : React . ReactElement {
60+ } ) => {
6161 let isOneDimensionArray = false ;
6262 const firstItem = layoutData [ 0 ] ;
6363 if ( ! Array . isArray ( firstItem ) ) {
@@ -91,14 +91,20 @@ export default function FormRenderer({
9191 }
9292
9393 return ! isOneDimensionArray ? (
94- renderTowDimensionLayout ( layoutData )
94+ < > { renderTowDimensionLayout ( layoutData ) } </ >
9595 ) : (
96- < div className = "afr-flex" >
96+ < >
9797 < Row >
9898 { ( layoutData as Item [ ] ) . map ( ( item , idx ) => (
9999 < ItemRender item = { item } key = { idx } span = { 24 } layoutType = "row" />
100100 ) ) }
101101 </ Row >
102- </ div >
102+ </ >
103103 ) ;
104- }
104+ } ;
105+
106+ export default FormRender ;
107+
108+ export { FormRender , FormSpaceRender } ;
109+
110+ export type { Item } ;
0 commit comments