diff --git a/packages/editor-skeleton/src/components/settings/settings-pane.tsx b/packages/editor-skeleton/src/components/settings/settings-pane.tsx index 6ad763ac1..50ea8d574 100644 --- a/packages/editor-skeleton/src/components/settings/settings-pane.tsx +++ b/packages/editor-skeleton/src/components/settings/settings-pane.tsx @@ -16,8 +16,9 @@ class SettingFieldView extends Component<{ field: SettingField }> { render() { const { field } = this.props; - const { extraProps } = field; + const { extraProps, componentMeta } = field; const { condition, defaultValue, display } = extraProps; + const { prototype } = componentMeta; let visible; try { visible = field.isSingle && typeof condition === 'function' ? condition(field) !== false : true; @@ -33,6 +34,8 @@ class SettingFieldView extends Component<{ field: SettingField }> { let setterProps: any = {}; let setterType: any; let initialValue: any = null; + const isReactComponent = prototype === null || prototype === undefined; + console.log(111, this.props); if (Array.isArray(setter)) { setterType = 'MixedSetter'; setterProps = { @@ -49,9 +52,15 @@ class SettingFieldView extends Component<{ field: SettingField }> { if (setter.initialValue != null) { initialValue = setter.initialValue; } + } else if (isReactComponent) { + setterType = 'MixedSetter'; + setterProps = { + setters: [setter, 'VariableSetter'], + }; } else if (setter) { setterType = setter; } + let value = null; if (defaultValue != null && !('defaultValue' in setterProps)) { setterProps.defaultValue = defaultValue;