fix dynamic setter

This commit is contained in:
kangwei 2020-04-25 15:17:51 +08:00
parent 7c3e7e315e
commit 50bc2bd7c2
7 changed files with 10 additions and 9 deletions

View File

@ -21,7 +21,7 @@ export class SettingField extends SettingPropEntry implements SettingEntry {
return null;
}
if (isDynamicSetter(this._setter)) {
return this._setter(this);
return this._setter.call(this,this);
}
return this._setter;
}

View File

@ -150,10 +150,8 @@ export class Node<Schema extends NodeSchema = NodeSchema> {
private transformProps(props: any): any {
// FIXME! support PropsList
const x = this.document.designer.transformProps(props, this, TransformStage.Init);
return this.document.designer.transformProps(props, this, TransformStage.Init);
// TODO: run transducers in metadata.experimental
console.info(x);
return x;
}
private initialChildren(children: any): NodeData[] {
@ -567,6 +565,9 @@ export class Node<Schema extends NodeSchema = NodeSchema> {
getNode() {
return this;
}
getRoot() {
return this.document.rootNode;
}
getProps() {
return this.props;
}

View File

@ -1,11 +1,11 @@
import { Component, Fragment } from 'react';
import { Icon, Button, Message } from '@alifd/next';
import { Title, SetterType, FieldConfig, SetterConfig } from '@ali/lowcode-globals';
import { SettingField } from '../../settings/setting-field';
import { createSettingFieldView } from '../../settings/settings-pane';
import { PopupContext, PopupPipe } from '../../popup';
import Sortable from './sortable';
import './style.less';
import { SettingField } from '@ali/lowcode-designer';
interface ArraySetterState {
items: SettingField[];

View File

@ -20,10 +20,10 @@ import {
EmbedTip,
isI18nData,
} from '@ali/lowcode-globals';
import { SettingField } from '../../settings/setting-field';
import { IconConvert } from '../../icons/convert';
import './style.less';
import { SettingField } from '@ali/lowcode-designer';
export interface SetterItem {
name: string;
@ -180,7 +180,7 @@ export default class MixedSetter extends Component<{
let setterProps: any = {};
let setterType: any;
if (isDynamicSetter(setter)) {
setterType = setter(field);
setterType = setter.call(field, field);
} else {
setterType = setter;
}

View File

@ -2,8 +2,8 @@ import { Component, Fragment } from 'react';
import { Icon, Button } from '@alifd/next';
import { Title, SetterType, FieldConfig } from '@ali/lowcode-globals';
import { createSettingFieldView } from '../../settings/settings-pane';
import { SettingField } from '../../settings/setting-field';
import { PopupContext, PopupPipe } from '../../popup';
import { SettingField } from '@ali/lowcode-designer';
import './style.less';
export default class ObjectSetter extends Component<{

View File

@ -41,6 +41,7 @@ class Renderer extends Component<{ renderer: SimulatorRenderer }> {
}
render() {
const { renderer } = this.props;
console.info(renderer.components)
return (
<LowCodeRenderer
schema={renderer.schema}

View File

@ -673,7 +673,6 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
const styles = {};
meta.configure = { props, component, events, styles };
meta.experimental = experimental;
console.info(meta);
return meta;
}