Merge branch 'fix/mixed-setter' into 'trunk-vision'

fix(editor-skeleton): fix dynamic setter support in mixed-setter

cherry-pick from http://gitlab.alibaba-inc.com/ali-lowcode/ali-lowcode-engine/merge_requests/1001278

See merge request !1007662
This commit is contained in:
力皓 2020-10-12 15:41:14 +08:00
commit 4f16d363a8

View File

@ -207,8 +207,14 @@ export default class MixedSetter extends Component<{
const { setter, props } = currentSetter; const { setter, props } = currentSetter;
let setterProps: any = {}; let setterProps: any = {};
let setterType: any; let setterType: any;
let dynamicProps: any = {};
if (isDynamicSetter(setter)) { if (isDynamicSetter(setter)) {
setterType = setter.call(field, field); setterType = setter.call(field, field);
// { componentName: string; props: object }
if (typeof setterType === 'object' && typeof setterType.componentName === 'string') {
dynamicProps = setterType.props || {};
setterType = setterType.componentName;
}
} else { } else {
setterType = setter; setterType = setter;
} }
@ -224,6 +230,7 @@ export default class MixedSetter extends Component<{
field, field,
...restProps, ...restProps,
...extraProps, ...extraProps,
...dynamicProps,
onInitial: () => { onInitial: () => {
this.handleInitial(currentSetter); this.handleInitial(currentSetter);
}, },