Longitud de array inválida al arrastrar un componente al lienzo
Aquí va otra pista... una vez que el lienzo "se rompe" (lo cual puedo hacer de forma fiable actualizando la página y forzando una carga... este comportamiento no ocurre en plantillas nuevas, solo cuando la plantilla se carga desde mi almacenamiento personalizado, pero he verificado que el JSON no está dañado), si cojo...
Lee la respuesta completa abajo ↓Pregunta
No sé por qué,
Pero de repente, cuando empiezo a arrastrar componentes a un lienzo, me sale esto:
! imagen
Esto parece ocurrir cuando edito una plantilla, la guardo y la vuelvo a cargar. También parece ocurrir cuando intento arrastrar un nuevo componente al ÚLTIMO elemento de la página; si intento arrastrar un elemento dentro de un contenedor DIV dentro de la plantilla, no pasa nada. Pero si intento arrastrarlo al principio de la plantilla, salen los elementos duplicados que mencioné en el #2494. Tengo la sensación de que esto está relacionado; En algún lugar hay un array nulo que no debería ser nulo.
Sin intentar montar un sandbox entero para reproducirlo fuera de mi aplicación, ¿alguna idea rápida sobre qué podría estar causando esto?
¿Alguna idea de cosas que pueda hacer para localizar el problema?
Respuestas (2)
Aquí va otra pista... una vez que el lienzo "se rompe" (lo cual puedo hacer de forma fiable actualizando la página y forzando una carga... este comportamiento no ocurre en plantillas nuevas, solo cuando la plantilla se carga desde mi almacenamiento personalizado, pero he verificado que el JSON no está dañado), si cojo un componente y lo arrastro sobre el lienzo, se crean copias "fantasma" del componente, aunque no lo haya dejado caer. Cada vez que paso el cursor hacia la parte superior del lienzo, se crea un nuevo componente fantasma, de nuevo, aunque no haya caído. Imagen abajo:
! imagen
¡Cualquier opinión es bienvenida, gracias!
Vale,
Conseguí incluir grapes.js en mi proyecto de Angular y consultarlo en lugar de la versión miniaturizada, para poder entender mejor lo que está pasando. El problema parece estar en Sorter.js. El método findPosition tiene la tarea de averiguar sobre qué elemento está el cursor flotando. Por alguna razón, esta línea de código:
result.indexEl = dim[6]; Si no está en flujo (como el elemento 'float')
Está volviendo NaN. Esto está engañando todo el código y causando una longitud de array inválida.
Cuando miro los dims, que son una matriz bidimensional con todo - supongo? - las dimensiones de los componentes en el lienzo, veo: ! imagen
Así que... Esto es interesante. Lo que supongo que está pasando es que lo que sea que está causando #2494, está creando un componente fantasma que no tiene ubicación... y por tanto está causando ESTE error.
Dejaré este ticket abierto, pero añadiré mis hallazgos al #2494.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #3414
El modelo de componentes no se reinicia al crear una nueva resistencia
Al arrastrar un componente desde el panel derecho, el modelo de componente no se establece al valor por defecto, sino que tiene el valor de...
Issue #3392
HAZAÑA: Permitir una configuración dinámica droppable usando una función
Tengo un requisito que me permite usar selectores para determinar si un elemento es soltable. Por ejemplo: ! imagen El componente "hijo" de...
Issue #2583
Los puntos de interrupción no coinciden con la consulta de medios en el lienzo
¡Hola @artf Tengo varios puntos de ruptura ! imagen El problema es que cuando tengo una resolución (configurada usando los iconos) como 411...
Issue #416
Carga de imagen con problema cruzado en Origin
He revisado todo el historial de problemas, pero no he encontrado una solución. ! por defecto He cambiado aquí para permitir que Fetch pued...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.