提交 abcc0d99 编写于 作者: Q qiang

fix(App): native components update view (question/140393)

上级 92cd2b4c
......@@ -94,6 +94,7 @@ export class UniComponent extends UniNode {
}
setText(text: string) {
;(this.$holder || this.$).textContent = text
this.updateView()
}
addWxsEvent(name: string, wxsEvent: string, flag: number) {
// 此时 $ 还不存在,故传入 this,等事件触发时,再获取 $
......@@ -137,6 +138,7 @@ export class UniComponent extends UniNode {
this.$props[name] = value
}
}
this.updateView()
}
removeAttr(name: string) {
if (isCssVar(name)) {
......@@ -144,6 +146,7 @@ export class UniComponent extends UniNode {
} else {
this.$props[name] = null
}
this.updateView()
}
remove() {
......@@ -152,12 +155,17 @@ export class UniComponent extends UniNode {
this.$app.unmount()
removeElement(this.id)
this.removeUniChildren()
this.updateView()
}
appendChild(node: Element) {
return (this.$holder || this.$).appendChild(node)
const res = (this.$holder || this.$).appendChild(node)
this.updateView(true)
return res
}
insertBefore(newChild: Node, refChild: Node) {
return (this.$holder || this.$).insertBefore(newChild, refChild)
const res = (this.$holder || this.$).insertBefore(newChild, refChild)
this.updateView(true)
return res
}
}
......
......@@ -120,6 +120,7 @@ export class UniElement<T extends object> extends UniNode {
else {
this.setAttribute(name, value as string)
}
this.updateView()
}
removeAttr(name: string) {
if (name === ATTR_CLASS) {
......@@ -129,6 +130,7 @@ export class UniElement<T extends object> extends UniNode {
} else {
this.removeAttribute(name)
}
this.updateView()
}
setAttribute(name: string, value: unknown) {
value = decodeAttr(this.$, value)
......
......@@ -43,6 +43,7 @@ export class UniNode {
}
setText(text: string) {
this.$.textContent = text
this.updateView()
}
insert(
parentNodeId: number,
......@@ -70,12 +71,17 @@ export class UniNode {
removeElement(this.id)
destroyRenderjs(this)
this.removeUniChildren()
this.updateView()
}
appendChild(node: Node) {
return this.$.appendChild(node)
const ref = this.$.appendChild(node)
this.updateView(true)
return ref
}
insertBefore(newChild: Node, refChild: Node) {
return this.$.insertBefore(newChild, refChild)
const ref = this.$.insertBefore(newChild, refChild)
this.updateView(true)
return ref
}
appendUniChild(node: UniNode) {
this.$children.push(node)
......@@ -137,4 +143,10 @@ export class UniNode {
)
}
}
updateView(isMounted?: boolean) {
// 通知原生组件更新位置
if (this.isMounted || isMounted) {
window.dispatchEvent(new CustomEvent('updateview'))
}
}
}
......@@ -37,6 +37,7 @@ export class UniTextElement extends UniAnimationElement<TextProps> {
setText(text: string) {
this._text = text
this.update()
this.updateView()
}
update(isMounted: boolean = false) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册