-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
と思う。気になったので少しだけ検証はした。
実際に消えてほしいNodeとは別のものが消える。removeChildも同様。
メモ: https://grimoirejs.slack.com/archives/C04CQQR6D/p1524666122000852
定義:
public remove(): void {
this.children.forEach((c) => {
c.remove();
});
this._sendMessageForced("$$dispose");
this.removeAllListeners();
delete GrimoireInterface.nodeDictionary[this.id];
if (this._parent) {
this._parent.detachChild(this);
} else {
this.setMounted(false);
if (this.element.parentNode) {
this.element.parentNode.removeChild(this.element);
}
}
this._deleted = true;
}
public removeChild(child: GomlNode): void {
const node = this.detachChild(child);
if (node) {
node.remove();
}
}
背景
これをつくったけど、消えるべきでないコインが消えてびっくりした。
registerComponetの$update内のthis.node.remove()が該当箇所で、代わりにscene.removeChild(this.node)も試したけど同じ挙動をした。
そもそも俺がremoveChildの使い方を間違えてるってことはある?
ほんじゃあどうするか
いいだしっぺの法則ありますか?