Skip to content

Commit a52f786

Browse files
charlzyxxiaochao.yang
andauthored
fix(components): 🩹 replace defaultProps by default parameters (#49)
Form 组件 component 无法获取到 form, 造成渲染失败 Co-authored-by: xiaochao.yang <xiaochao.yang@relxtech.com>
1 parent bdf8e71 commit a52f786

File tree

8 files changed

+26
-56
lines changed

8 files changed

+26
-56
lines changed

packages/components/src/__builtins__/portal.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,26 @@ const PortalMap = observable(new Map<string | symbol, React.ReactNode>())
1111

1212
export const createPortalProvider = (id: string | symbol) => {
1313
const Portal: ReactFC<IPortalProps> = (props) => {
14-
if (props.id && !PortalMap.has(props.id)) {
15-
PortalMap.set(props.id, null)
14+
const portalId = props.id ?? id
15+
if (portalId && !PortalMap.has(portalId)) {
16+
PortalMap.set(portalId, null)
1617
}
1718

1819
return (
1920
<Fragment>
2021
{props.children}
2122
<Observer>
2223
{() => {
23-
if (!props.id) return <></>
24-
const portal = PortalMap.get(props.id)
24+
if (portalId!) return <></>
25+
const portal = PortalMap.get(portalId)
2526
if (portal) return createPortal(portal, document.body)
2627
return <></>
2728
}}
2829
</Observer>
2930
</Fragment>
3031
)
3132
}
32-
Portal.defaultProps = {
33-
id,
34-
}
33+
3534
return Portal
3635
}
3736

packages/components/src/array-collapse/index.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,7 @@ const InternalArrayCollapse: ReactFC<IArrayCollapseProps> = observer(
7979
const field = useField<ArrayField>()
8080
const dataSource = Array.isArray(field.value) ? field.value : []
8181
const [activeKeys, setActiveKeys] = useState<number[]>(
82-
takeDefaultActiveKeys(
83-
dataSource.length,
84-
props.defaultOpenPanelCount as number
85-
)
82+
takeDefaultActiveKeys(dataSource.length, props.defaultOpenPanelCount ?? 5)
8683
)
8784
const schema = useFieldSchema()
8885
const prefixCls = usePrefixCls('formily-array-collapse', props)
@@ -93,7 +90,7 @@ const InternalArrayCollapse: ReactFC<IArrayCollapseProps> = observer(
9390
setActiveKeys(
9491
takeDefaultActiveKeys(
9592
dataSource.length,
96-
props.defaultOpenPanelCount as number
93+
props.defaultOpenPanelCount ?? 5
9794
)
9895
)
9996
}
@@ -248,8 +245,4 @@ export const ArrayCollapse = Object.assign(
248245
)
249246
ArrayCollapse.displayName = 'ArrayCollapse'
250247

251-
ArrayCollapse.defaultProps = {
252-
defaultOpenPanelCount: 5,
253-
}
254-
255248
export default ArrayCollapse

packages/components/src/form-button-group/index.tsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ function getDefaultBackground() {
5959
}
6060

6161
export const FormButtonGroup: ComposedButtonGroup = ({
62-
align,
62+
align = 'left',
6363
gutter,
6464
...props
6565
}) => {
@@ -85,10 +85,6 @@ export const FormButtonGroup: ComposedButtonGroup = ({
8585
)
8686
}
8787

88-
FormButtonGroup.defaultProps = {
89-
align: 'left',
90-
}
91-
9288
FormButtonGroup.FormItem = ({ gutter, ...props }) => {
9389
return (
9490
<BaseItem
@@ -111,7 +107,7 @@ FormButtonGroup.FormItem = ({ gutter, ...props }) => {
111107
)
112108
}
113109

114-
FormButtonGroup.Sticky = ({ align, ...props }) => {
110+
FormButtonGroup.Sticky = ({ align = 'left', ...props }) => {
115111
const ref = useRef(null)
116112
const [color, setColor] = useState('transparent')
117113
const prefixCls = usePrefixCls('formily-button-group')
@@ -154,8 +150,4 @@ FormButtonGroup.Sticky = ({ align, ...props }) => {
154150
)
155151
}
156152

157-
FormButtonGroup.Sticky.defaultProps = {
158-
align: 'left',
159-
}
160-
161153
export default FormButtonGroup

packages/components/src/form-grid/index.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,14 @@ const InternalFormGrid = observer(
8181
)
8282

8383
export const GridColumn: React.FC<React.PropsWithChildren<IGridColumnProps>> =
84-
observer(({ gridSpan, children, ...props }) => {
84+
observer(({ gridSpan = 1, children, ...props }) => {
8585
return (
8686
<div {...props} style={props.style} data-grid-span={gridSpan}>
8787
{children}
8888
</div>
8989
)
9090
})
9191

92-
GridColumn.defaultProps = {
93-
gridSpan: 1,
94-
}
95-
9692
export const FormGrid = Object.assign(InternalFormGrid, {
9793
createFormGrid,
9894
useFormGrid,

packages/components/src/form-layout/index.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,14 @@ export const FormLayout: React.FC<React.PropsWithChildren<IFormLayoutProps>> & {
6565
useFormLayout: () => IFormLayoutContext
6666
useFormDeepLayout: () => IFormLayoutContext
6767
useFormShallowLayout: () => IFormLayoutContext
68-
} = ({ shallow, children, prefixCls, className, style, ...otherProps }) => {
68+
} = ({
69+
shallow = true,
70+
children,
71+
prefixCls,
72+
className,
73+
style,
74+
...otherProps
75+
}) => {
6976
const { ref, props } = useResponsiveFormLayout(otherProps)
7077
const deepLayout = useFormDeepLayout()
7178
const formPrefixCls = usePrefixCls('form', { prefixCls })
@@ -108,10 +115,6 @@ export const FormLayout: React.FC<React.PropsWithChildren<IFormLayoutProps>> & {
108115
)
109116
}
110117

111-
FormLayout.defaultProps = {
112-
shallow: true,
113-
}
114-
115118
FormLayout.useFormDeepLayout = useFormDeepLayout
116119
FormLayout.useFormShallowLayout = useFormShallowLayout
117120
FormLayout.useFormLayout = useFormLayout

packages/components/src/form/index.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export interface FormProps extends IFormLayoutProps {
2323

2424
export const Form: React.FC<React.PropsWithChildren<FormProps>> = ({
2525
form,
26-
component,
26+
component = 'form',
2727
onAutoSubmit,
2828
onAutoSubmitFailed,
2929
previewTextPlaceholder,
@@ -55,8 +55,4 @@ export const Form: React.FC<React.PropsWithChildren<FormProps>> = ({
5555
return renderContent(top)
5656
}
5757

58-
Form.defaultProps = {
59-
component: 'form',
60-
}
61-
6258
export default Form

packages/components/src/select-table/index.tsx

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,11 @@ const addPrimaryKey = (dataSource, rowKey, primaryKey) =>
147147

148148
const InternalSelectTable: ReactFC<ISelectTableProps> = observer((props) => {
149149
const {
150-
mode,
150+
mode = 'multiple',
151151
dataSource: propsDataSource,
152152
optionAsValue,
153-
valueType,
154-
showSearch,
153+
valueType = 'all',
154+
showSearch = false,
155155
filterOption,
156156
filterSort,
157157
onSearch,
@@ -160,7 +160,7 @@ const InternalSelectTable: ReactFC<ISelectTableProps> = observer((props) => {
160160
value,
161161
onChange,
162162
rowSelection,
163-
primaryKey: rowKey,
163+
primaryKey: rowKey = 'key',
164164
...otherTableProps
165165
} = props
166166
const prefixCls = usePrefixCls('formily-select-table', props)
@@ -422,11 +422,4 @@ export const SelectTable = Object.assign(InternalSelectTable, {
422422
Column: TableColumn,
423423
})
424424

425-
SelectTable.defaultProps = {
426-
showSearch: false,
427-
valueType: 'all',
428-
primaryKey: 'key',
429-
mode: 'multiple',
430-
}
431-
432425
export default SelectTable

packages/components/src/transfer/index.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { isVoidField } from '@formily/core'
22
import { connect, mapProps } from '@formily/react'
33
import { Transfer as AntdTransfer } from 'antd'
44

5+
const renderTitle = (item) => item.title ?? null
56
export const Transfer = connect(
67
AntdTransfer,
78
mapProps(
@@ -12,6 +13,7 @@ export const Transfer = connect(
1213
if (isVoidField(field)) return props
1314
return {
1415
...props,
16+
render: props.render || renderTitle,
1517
dataSource:
1618
field.dataSource?.map((item) => {
1719
return {
@@ -25,8 +27,4 @@ export const Transfer = connect(
2527
)
2628
)
2729

28-
Transfer.defaultProps = {
29-
render: (item) => item.title ?? null,
30-
}
31-
3230
export default Transfer

0 commit comments

Comments
 (0)