mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 19:52:51 +00:00
fix: fix the leaf hoc component fails to monitor Node changes, and modify the logic for get node
This commit is contained in:
parent
ecb9dca2b9
commit
f400172825
@ -538,6 +538,7 @@ export class SimulatorRendererContainer implements BuiltinSimulatorRenderer {
|
|||||||
// mock _leaf,减少性能开销
|
// mock _leaf,减少性能开销
|
||||||
const _leaf = {
|
const _leaf = {
|
||||||
isEmpty: () => false,
|
isEmpty: () => false,
|
||||||
|
isMock: true,
|
||||||
};
|
};
|
||||||
viewProps._leaf = _leaf;
|
viewProps._leaf = _leaf;
|
||||||
return createElement(Comp, viewProps, children);
|
return createElement(Comp, viewProps, children);
|
||||||
|
|||||||
@ -465,6 +465,7 @@ export class SimulatorRendererContainer implements BuiltinSimulatorRenderer {
|
|||||||
// mock _leaf,减少性能开销
|
// mock _leaf,减少性能开销
|
||||||
const _leaf = {
|
const _leaf = {
|
||||||
isEmpty: () => false,
|
isEmpty: () => false,
|
||||||
|
isMock: true,
|
||||||
};
|
};
|
||||||
viewProps._leaf = _leaf;
|
viewProps._leaf = _leaf;
|
||||||
return createElement(Comp, viewProps, children);
|
return createElement(Comp, viewProps, children);
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@alib/build-scripts": "^0.1.18",
|
"@alib/build-scripts": "^0.1.18",
|
||||||
|
"@alifd/next": "^1.26.0",
|
||||||
"@alilc/lowcode-designer": "1.0.14",
|
"@alilc/lowcode-designer": "1.0.14",
|
||||||
"@alilc/lowcode-test-mate": "^1.0.1",
|
"@alilc/lowcode-test-mate": "^1.0.1",
|
||||||
"@babel/plugin-transform-typescript": "^7.16.8",
|
"@babel/plugin-transform-typescript": "^7.16.8",
|
||||||
|
|||||||
@ -514,7 +514,12 @@ export function leafWrapper(Comp: types.IBaseRenderComponent, {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get leaf(): Node | undefined {
|
get leaf(): Node | undefined {
|
||||||
return this.props._leaf || getNode?.(componentCacheId);
|
if (this.props._leaf?.isMock) {
|
||||||
|
// 低代码组件作为一个整体更新,其内部的组件不需要监听相关事件
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return getNode?.(componentCacheId);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|||||||
@ -232,6 +232,9 @@ describe('mini unit render', () => {
|
|||||||
parent: MiniRenderDivNode,
|
parent: MiniRenderDivNode,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nodeMap.set(miniRenderSchema.id, MiniRenderDivNode);
|
||||||
|
nodeMap.set(textSchema.id, TextNode);
|
||||||
|
|
||||||
component = renderer.create(
|
component = renderer.create(
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
<MiniRenderDiv _leaf={MiniRenderDivNode}>
|
<MiniRenderDiv _leaf={MiniRenderDivNode}>
|
||||||
@ -277,6 +280,8 @@ describe('mini unit render', () => {
|
|||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nodeMap.set(textSchema.id, TextNode);
|
||||||
|
|
||||||
renderer.create(
|
renderer.create(
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
<div>
|
<div>
|
||||||
@ -319,6 +324,8 @@ describe('mini unit render', () => {
|
|||||||
isRoot: true,
|
isRoot: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nodeMap.set(textSchema.id, TextNode);
|
||||||
|
|
||||||
const component = renderer.create(
|
const component = renderer.create(
|
||||||
<Text _leaf={TextNode} content="content"></Text>
|
<Text _leaf={TextNode} content="content"></Text>
|
||||||
);
|
);
|
||||||
@ -351,6 +358,8 @@ describe('mini unit render', () => {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nodeMap.set(textSchema.id, TextNode);
|
||||||
|
|
||||||
const component = renderer.create(
|
const component = renderer.create(
|
||||||
<Text _leaf={TextNode} content="content"></Text>
|
<Text _leaf={TextNode} content="content"></Text>
|
||||||
);
|
);
|
||||||
@ -370,7 +379,9 @@ describe('mini unit render', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('parent is a mock leaf', () => {
|
it('parent is a mock leaf', () => {
|
||||||
const MiniRenderDivNode = {};
|
const MiniRenderDivNode = {
|
||||||
|
isMock: true,
|
||||||
|
};
|
||||||
|
|
||||||
const component = renderer.create(
|
const component = renderer.create(
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
@ -409,6 +420,9 @@ describe('mini unit render', () => {
|
|||||||
hasLoop: true,
|
hasLoop: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nodeMap.set(textSchema.id, TextNode);
|
||||||
|
nodeMap.set(miniRenderSchema.id, MiniRenderDivNode);
|
||||||
|
|
||||||
component = renderer.create(
|
component = renderer.create(
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
<MiniRenderDiv _leaf={MiniRenderDivNode}>
|
<MiniRenderDiv _leaf={MiniRenderDivNode}>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user