fix: slot 兼容问题 + loop key bug fix

This commit is contained in:
mario.gk 2020-07-29 18:22:33 +08:00
parent 70607415d9
commit bc6401781a
3 changed files with 25 additions and 18 deletions

View File

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

View File

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

View File

@ -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(