Issue #2940💬 RespondidoAbierto el 6 de agosto de 2020por jcamejoReacciones 0

RemoveChildren en Components.js ejecutándose con un componente indefinido

Respuesta rápidapor artf

Gracias, Juan, todo bien y te espero lo mismo :)Esto se puede solucionar simplemente devolviendo si el parámetro eliminado es falso, pero quizá sea demasiado poco fiable y debería buscar otra solución y no hacer que el componente elimine a su padre. Bueno, técnicamente 'removeChildren' no debería llamarse "sin" 'remov...

Lee la respuesta completa abajo ↓

Pregunta

Hola @artf mucho tiempo, espero que todo vaya bien contigo y tus seres cercanos.

Hay un pequeño caso que quería preguntar qué opinas antes de hacer una petición.

Tengo un componente de enlace personalizado que está envolvido alrededor de una etiqueta li, este enlace tiene un evento para eliminar su li padre cuando se elimina.

Si borro el enlace directamente, todo funciona bien, pero si elimino un padre externo que contiene componentes tanto de li como de enlace, removeChildren en Components.js se ejecuta con un componente indefinido, causando este error

Uncaught TypeError: no se puede acceder a la propiedad "getId", eliminado está indefinido
    removeChildren Components.js:30

Esto se debe a que el objeto se elimina durante otra callback (la personalizada que hice) antes de que removeChildren reciba el parámetro.

Esto se puede solucionar simplemente devolviendo si el parámetro eliminado es falso, pero quizá sea demasiado inútil y debería buscar otra solución y no hacer que el componente elimine su padre.

  removeChildren(removed, coll, opts = {}) {
    if (!eliminado) {
      regresar;
    }

¿Qué opinas?

¡Gracias!

Respuestas (1)

artf26 de agosto de 2020

Gracias, Juan, todo bien y te espero lo mismo :)

Esto se puede solucionar simplemente devolviendo si el parámetro eliminado es falso, pero quizá sea demasiado poco fiable y debería buscar otra solución y no hacer que el componente elimine a su padre.

Bueno, técnicamente 'removeChildren' no debería llamarse "sin" 'removed', así que si esa condición soluciona tu problema creo que está bien. También creo que tu caso podría ser usado por otra persona

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.