Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[question] Node removeChild() set to null

Abierto
#375 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
javascript
Área
frontend

Línea de trabajo

Comienza en core/Node, en removeChild(), y compara el manejo de _children con Dispatch.prototype.dispatch en el fragmento indicado. Reproduce un despacho de eventos después de eliminar un hijo y verifica que los hijos eliminados ya no provoquen un acceso a null, manteniendo al mismo tiempo el comportamiento previsto de la lista de hijos; comprueba si existen pruebas sobre Node y dispatch.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

question

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?

Lenguaje dominante
JavaScript
Estrellas
1.7k
Forks
249
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Famous/engine

Todos los issues de Famous/engine

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.