feat:fix when call build and onShow at once,then onRenderFinishedCallback maybe called before the render action finished
This commit is contained in:
1
doric-js/lib/src/ui/panel.d.ts
vendored
1
doric-js/lib/src/ui/panel.d.ts
vendored
@@ -13,6 +13,7 @@ export declare abstract class Panel {
|
||||
private __root__;
|
||||
private headviews;
|
||||
private onRenderFinishedCallback;
|
||||
private __rendering__;
|
||||
addHeadView(type: string, v: View): void;
|
||||
allHeadViews(): IterableIterator<Map<string, View>>;
|
||||
removeHeadView(type: string, v: View | string): void;
|
||||
|
@@ -38,6 +38,7 @@ export class Panel {
|
||||
this.__root__ = new Root;
|
||||
this.headviews = new Map;
|
||||
this.onRenderFinishedCallback = [];
|
||||
this.__rendering__ = false;
|
||||
}
|
||||
onCreate() { }
|
||||
onDestroy() { }
|
||||
@@ -187,9 +188,18 @@ export class Panel {
|
||||
}
|
||||
});
|
||||
}
|
||||
Promise.all(promises).then(_ => {
|
||||
this.onRenderFinished();
|
||||
});
|
||||
if (this.__rendering__) {
|
||||
//skip
|
||||
Promise.all(promises).then(_ => {
|
||||
});
|
||||
}
|
||||
else {
|
||||
this.__rendering__ = true;
|
||||
Promise.all(promises).then(_ => {
|
||||
this.__rendering__ = false;
|
||||
this.onRenderFinished();
|
||||
});
|
||||
}
|
||||
}
|
||||
onRenderFinished() {
|
||||
this.onRenderFinishedCallback.forEach(e => {
|
||||
|
Reference in New Issue
Block a user