Merge commit '4f16d363a87a1dbff25b639a75554293b3f85955' into daily/0.10.0

# Conflicts:
#	CHANGELOG.md
#	lerna.json
#	packages/code-generator/CHANGELOG.md
#	packages/code-generator/package.json
#	packages/demo-server/CHANGELOG.md
#	packages/demo-server/package.json
#	packages/demo/CHANGELOG.md
#	packages/demo/package.json
#	packages/designer/CHANGELOG.md
#	packages/designer/package.json
#	packages/editor-core/CHANGELOG.md
#	packages/editor-core/package.json
#	packages/editor-preset-general/CHANGELOG.md
#	packages/editor-preset-general/package.json
#	packages/editor-preset-vision/CHANGELOG.md
#	packages/editor-preset-vision/package.json
#	packages/editor-setters/CHANGELOG.md
#	packages/editor-setters/package.json
#	packages/editor-skeleton/CHANGELOG.md
#	packages/editor-skeleton/package.json
#	packages/material-parser/CHANGELOG.md
#	packages/material-parser/package.json
#	packages/plugin-components-pane/CHANGELOG.md
#	packages/plugin-components-pane/package.json
#	packages/plugin-designer/CHANGELOG.md
#	packages/plugin-designer/package.json
#	packages/plugin-event-bind-dialog/CHANGELOG.md
#	packages/plugin-event-bind-dialog/package.json
#	packages/plugin-outline-pane/CHANGELOG.md
#	packages/plugin-outline-pane/package.json
#	packages/plugin-sample-logo/CHANGELOG.md
#	packages/plugin-sample-logo/package.json
#	packages/plugin-sample-preview/CHANGELOG.md
#	packages/plugin-sample-preview/package.json
#	packages/plugin-source-editor/CHANGELOG.md
#	packages/plugin-source-editor/package.json
#	packages/plugin-undo-redo/CHANGELOG.md
#	packages/plugin-undo-redo/package.json
#	packages/plugin-variable-bind-dialog/CHANGELOG.md
#	packages/plugin-variable-bind-dialog/package.json
#	packages/plugin-zh-en/CHANGELOG.md
#	packages/plugin-zh-en/package.json
#	packages/rax-provider/CHANGELOG.md
#	packages/rax-provider/package.json
#	packages/rax-render/CHANGELOG.md
#	packages/rax-render/package.json
#	packages/rax-simulator-renderer/CHANGELOG.md
#	packages/rax-simulator-renderer/package.json
#	packages/react-provider/CHANGELOG.md
#	packages/react-provider/package.json
#	packages/react-renderer/CHANGELOG.md
#	packages/react-renderer/package.json
#	packages/react-simulator-renderer/CHANGELOG.md
#	packages/react-simulator-renderer/package.json
#	packages/runtime/CHANGELOG.md
#	packages/runtime/package.json
#	packages/types/CHANGELOG.md
#	packages/types/package.json
#	packages/utils/CHANGELOG.md
#	packages/utils/package.json
This commit is contained in:
mario.gk 2020-10-12 19:02:48 +08:00
commit d665900aec
3 changed files with 13 additions and 8 deletions

View File

@ -13,6 +13,7 @@ import { Skeleton, SettingsPrimaryPane, registerDefaults } from '@ali/lowcode-ed
import { deepValueParser } from './deep-value-parser';
import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing';
import { isVariable } from './utils';
export const editor = new Editor();
globalContext.register(editor, Editor);
@ -36,10 +37,6 @@ interface Variable {
value: any;
}
function isVariable(obj: any): obj is Variable {
return obj && obj.type === 'variable';
}
function upgradePropsReducer(props: any) {
if (!props || !isPlainObject(props)) {
return props;
@ -123,9 +120,11 @@ designer.addPropsReducer((props, node) => {
if (ov === undefined && v !== undefined) {
newProps[item.name] = v;
}
// 兼容 props 中的属性为 i18n 类型,但是仅提供了一个
// 兼容 props 中的属性为 i18n 类型,但是仅提供了一个字符串,非变量绑定
if (isUseI18NSetter(node.componentMeta.prototype, item.name) &&
!isI18NObject(ov) && !isVariable(ov)) {
!isI18NObject(ov) &&
!isJSExpression(ov) &&
!isVariable(ov)) {
newProps[item.name] = v;
}
} catch (e) {

View File

@ -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);
},

View File

@ -517,8 +517,7 @@ class ComponentCreator extends React.Component<{ schema: any; propsMap: any, com
if (this.isModal) {
return null;
}
const { schema, propsMap } = this.props;
const componentsMap = this.props.componentsMap;
const { schema, propsMap, componentsMap } = this.props;
const ComponentClass = componentsMap[schema.componentName];
if (!ComponentClass) {
return null;