[question] Node removeChild() set to null
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 38/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript
- Bereich
- frontend
Rechercherichtung
Beginne in core/Node bei removeChild() und vergleiche die Behandlung von _children mit Dispatch.prototype.dispatch im gemeldeten Snippet. Reproduziere eine Event-Dispatch-Operation nach dem Entfernen eines Kindes und überprüfe anschließend, dass entfernte Kinder keinen Zugriff auf null mehr verursachen, während das beabsichtigte Verhalten der Kinderliste erhalten bleibt; prüfe, ob bereits Tests für Node und dispatch vorhanden sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
When Node1.removeChild(node2) is called, the index of node2 in Node1._children array is set to NULL.
This causes an error when, after a removeChild, i use events:
Uncaught TypeError: Cannot read property 'onReceive' of null
here:
Dispatch.prototype.dispatch = function dispatch (event, payload) {
if (!event) throw new Error('dispatch requires an event name as it's first argument');
var queue = this._queue;
var item;
var i;
var len;
var children;
queue.length = 0;
queue.push(this._context);
while (queue.length) {
item = queue.shift();
if (item.onReceive) item.onReceive(event, payload);
children = item.getChildren();
for (i = 0, len = children.length ; i < len ; i++) queue.push(children[i]);
}
};
I managed to fix this, by changing:
this._children[index] = null;
with:
this._children.splice(index, 1);
in the removeChild() function of core/Node.
Is this intentional?
Does this change affect other things?
- Vorherrschende Sprache
- JavaScript
- Sterne
- 1.7k
- Forks
- 249
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Famous/engine
-
mechronetechOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 5/100
-
car motors for saleOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 1/100
-
k20 engine for saleOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 1/100
-
#THEREISNOSPOONOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 10/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 10/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Automattic/node-canvas#2633 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
capricorn86/happy-dom#2594 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
microsoft/monaco-editor#5575 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag