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