selection.data() throws TypeError when selection is created from a DOM element
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 56/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript
- Área
- frontend
Línea de trabajo
Start by reproducing the failure in d3-selection 3.0.0 with the DOM element example in the issue, then trace how .data() reaches EnterNode and bindIndex in the reported stack. Compare that path with selection from '#app' and identify why the element-created selection lacks the expected document reference. Done means both examples complete without the TypeError and the behavior is covered by a regression test.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
Calling data() on a selection created from a DOM element appears to fail when D3 attempts to create EnterNodes.
The following works:
d3.select('#app').data([1, 2, 3, 4]);
but the equivalent selection created from the DOM element itself throws:
d3.select(document.getElementById('app')).data([1, 2, 3, 4]);
Uncaught TypeError: Cannot read properties of null (reading 'ownerDocument') at new EnterNode (d3-selection.js?v=2f31b0b4:142:30) at bindIndex (d3-selection.js?v=2f31b0b4:177:20)...
Shouldn't both snippets result in indentical execution?
Reproduction
<div id="app"></div>
<script>
d3.select(document.getElementById('app'))
.data([1, 2, 3, 4]);
</script>
Environment
d3-selection : 3.0.0
browser : Chrome Version 147.0.7727.55 (Official Build) (64-bit)
- Lenguaje dominante
- JavaScript
- Estrellas
- 571
- Forks
- 283
- Merge medio
- 7 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de d3/d3-selection
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
d3/d3-selection#323 ·
-
d3 v7.9.0 – d3.pointer() uses createSVGPoint() which is now deprecatedPosiblemente ocupada @Fil la tomó hace 677 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
d3/d3-selection#320 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
d3/d3-selection#319 · 1 comentario ·
-
selection.appendAllAbiertoenhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
d3/d3-selection#301 · 3 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
d3/d3-selection#292 · 2 comentarios ·
Todos los issues de d3/d3-selection
Issues similares
-
ai bug design good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
neomjs/neo-agent-institution#927 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
gramps-project/gramps-web#1671 ·
Los mantenedores suelen responder en 1 día
-
bug good first issue priority: P2 status: ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
RhinoLink-Tech/data-fabric#502 ·
Los mantenedores suelen responder en 1 día
-
[Server Submission]: PayStageAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
cline/mcp-marketplace#3708 ·
-
beginner-friendly category:finding-titles community enhancement first-timers-only good first issue help wanted low hanging fruit micro-contribution type: task up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Berserk-hub150/skillhawk#264 · 1 comentario ·
Los mantenedores suelen responder en 4 días