From 17263543b2fad08aff1e3df62f1c0f8bed481065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=80=9E=E7=BE=BD?= Date: Tue, 29 Sep 2020 11:26:25 +0800 Subject: [PATCH] fix(editor-skeleton): fix dynamic setter support in mixed-setter --- .../editor-skeleton/src/components/mixed-setter/index.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/editor-skeleton/src/components/mixed-setter/index.tsx b/packages/editor-skeleton/src/components/mixed-setter/index.tsx index c182873ee..1d169e6b4 100644 --- a/packages/editor-skeleton/src/components/mixed-setter/index.tsx +++ b/packages/editor-skeleton/src/components/mixed-setter/index.tsx @@ -207,8 +207,14 @@ export default class MixedSetter extends Component<{ const { setter, props } = currentSetter; let setterProps: any = {}; let setterType: any; + let dynamicProps: any = {}; if (isDynamicSetter(setter)) { setterType = setter.call(field, field); + // { componentName: string; props: object } + if (typeof setterType === 'object' && typeof setterType.componentName === 'string') { + dynamicProps = setterType.props || {}; + setterType = setterType.componentName; + } } else { setterType = setter; } @@ -224,6 +230,7 @@ export default class MixedSetter extends Component<{ field, ...restProps, ...extraProps, + ...dynamicProps, onInitial: () => { this.handleInitial(currentSetter); },