mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-13 01:21:58 +00:00
fix: slot 兼容问题 + loop key bug fix
This commit is contained in:
parent
70607415d9
commit
bc6401781a
@ -813,9 +813,9 @@ export class Node<Schema extends NodeSchema = NodeSchema> {
|
||||
* @deprecated
|
||||
*/
|
||||
registerAddon(key: string, exportData: () => any, isProp: boolean = false) {
|
||||
if (this._addons[key]) {
|
||||
throw new Error(`node addon ${key} exist`);
|
||||
}
|
||||
// if (this._addons[key]) {
|
||||
// throw new Error(`node addon ${key} exist`);
|
||||
// }
|
||||
|
||||
this._addons[key] = { exportData, isProp };
|
||||
}
|
||||
|
||||
@ -281,21 +281,24 @@ export function upgradePropConfig(config: OldPropConfig, collector: ConfigCollec
|
||||
}
|
||||
|
||||
let initialFn = (slotName ? null : initial) || initialValue;
|
||||
if (slotName && initialValue === true) {
|
||||
initialFn = (value: any, defaultValue: any) => {
|
||||
if (isJSSlot(value)) {
|
||||
return {
|
||||
title: slotTitle || title,
|
||||
...value,
|
||||
};
|
||||
}
|
||||
return {
|
||||
type: 'JSSlot',
|
||||
title: slotTitle || title,
|
||||
value: initialChildren,
|
||||
};
|
||||
};
|
||||
}
|
||||
// 在 upgrade reducer 做了 JSBlock ——> JSSlot
|
||||
// if (slotName && initialValue === true) {
|
||||
// initialFn = (value: any, defaultValue: any) => {
|
||||
// if (isJSSlot(value)) {
|
||||
// return {
|
||||
// title: slotTitle || title,
|
||||
// name: slotName,
|
||||
// ...value,
|
||||
// };
|
||||
// }
|
||||
// return {
|
||||
// type: 'JSSlot',
|
||||
// title: slotTitle || title,
|
||||
// name: slotName,
|
||||
// value: initialChildren,
|
||||
// };
|
||||
// };
|
||||
// }
|
||||
|
||||
if (!slotName) {
|
||||
if (accessor) {
|
||||
@ -401,6 +404,7 @@ export function upgradePropConfig(config: OldPropConfig, collector: ConfigCollec
|
||||
return {
|
||||
type: 'JSSlot',
|
||||
title: slotTitle || title,
|
||||
name: slotName,
|
||||
value: value == null ? initialChildren : value,
|
||||
};
|
||||
},
|
||||
|
||||
@ -309,6 +309,8 @@ export default class BaseEngine extends PureComponent {
|
||||
if (scopeKey && this.__compScopes[scopeKey]) {
|
||||
props.__scope = this.__compScopes[scopeKey];
|
||||
}
|
||||
// FIXME 这里清除 key 是为了避免循环渲染中更改 key 导致的渲染重复
|
||||
props.key = '';
|
||||
if (schema.__ctx && schema.__ctx.lunaKey) {
|
||||
if (!isFileSchema(schema)) {
|
||||
engine && engine.props.onCompGetCtx(schema, self);
|
||||
@ -317,6 +319,7 @@ export default class BaseEngine extends PureComponent {
|
||||
} else if (typeof idx === 'number' && !props.key) {
|
||||
props.key = idx;
|
||||
}
|
||||
|
||||
props.__id = schema.id;
|
||||
const renderComp = (props) => {
|
||||
return engine.createElement(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user