feat:complete the implement of JSX

This commit is contained in:
pengfei.zhou
2021-09-03 13:42:25 +08:00
committed by osborn
parent 266d20782a
commit bec0d44af0
23 changed files with 322 additions and 150 deletions

View File

@@ -153,10 +153,14 @@ export declare abstract class Superview extends View {
clean(): void;
toModel(): NativeViewModel;
}
export declare abstract class Group extends Superview {
export declare type ViewArray = View[];
export declare type ViewFragment = View | ViewArray;
export declare abstract class Group extends Superview implements JSX.ElementChildrenAttribute {
readonly children: View[];
allSubviews(): View[];
addChild(view: View): void;
removeChild(view: View): void;
removeAllChildren(): void;
private addInnerElement;
set innerElement(e: View | ViewFragment | ViewFragment[] | undefined | null);
}

View File

@@ -443,4 +443,18 @@ export class Group extends Superview {
removeAllChildren() {
this.children.length = 0;
}
addInnerElement(e) {
if (e instanceof Array) {
e.forEach(e => this.addInnerElement(e));
}
else if (e instanceof View) {
this.addChild(e);
}
else {
loge(`Not allowed to add ${typeof e}`);
}
}
set innerElement(e) {
this.addInnerElement(e);
}
}