Issue #2493💬 RespondidoAbierto el 7 de enero de 2020por andrewryan1906Reacciones 0

Longitud de array inválida al arrastrar un componente al lienzo

Respuesta rápidapor andrewryan1906

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)

andrewryan19067 de enero de 2020

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!

andrewryan19067 de enero de 2020

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.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

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 →
Opción premium

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.