¿Cómo manejar componentes antiguos (json) con una nueva configuración de editor?
¿Puede el editor detectar la nueva configuración de componentes sin tener que añadir uno nuevo manualmente al lienzo? No realmente, si almacenas la definición de componente de una manera, el editor cargará esa definición. Lo único que puedo sugerir es usar 'avoidDefaults' ('true' por defecto desde la v0.15.5). Esto ev...
Lee la respuesta completa abajo ↓Pregunta
Hola @artf,
Tengo una pregunta sobre el editor de uvas que no encuentro en la documentación, así que espero que tengas una respuesta.
Configuración básica:
La configuración de todos los componentes se establece con el init 'this.editor = grapesjs.init(defaultConfiguration);'
Los componentes de un json guardado anterior se suman con setComponents(). 'this.editor.setComponents(templateComponents)'
El problema: Tengo un componente personalizado desde el que quiero actualizar la configuración. En mi caso quiero actualizar la propiedad de stylable a false. Así que cambié la configuración de componentes y ahora, cuando añado un nuevo componente al lienzo, tiene la propiedad de falso estilo estilable. Eso está bien.
Pero los otros componentes que se establecen con setComponents siguen teniendo la propiedad 'stylable: true'. Porque el json fue creado antes con una configuración diferente.
Sin embargo, cuando edito el componente, solo entonces se reañaden todos los componentes del lienzo y se sobrescribe la configuración de componentes antigua (nuevo json). (a 'estilizado: falso')
Mi pregunta es: ¿Cómo deberíamos manejar nuevas configuraciones de componentes mientras seguimos teniendo muchas configuraciones JSON antiguas que persisten y tienen una configuración antigua? ¿Puede el editor detectar la nueva configuración de componentes sin tener que añadir manualmente uno nuevo al lienzo?
¡Gracias de antemano!
Respuestas (2)
¿Puede el editor detectar la nueva configuración de componentes sin tener que añadir uno nuevo manualmente al lienzo?
No realmente, si almacenas la definición de componente de una manera, el editor cargará esa definición.
Lo único que puedo sugerir es usar 'avoidDefaults' ('true' por defecto desde la v0.15.5). Esto evita almacenar todas las propiedades predeterminadas de los componentes, lo que puede evitar que te encuentres en esas situaciones
¡Gracias por tu respuesta! Voy a usar 'avoidDefaults: true' y hacer que funcione :)
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #2805
[PREGUNTA] "Los cambios que hayas hecho pueden no guardarse." Se muestra una ventana emergente de alerta
Hola a todos Tengo un problema relacionado con Alert que aparecía cuando intentaba cerrar sesión en la página. En realidad no sé si es un b...
Issue #1683
¿Cómo cambiar el id/clase cuando aparece un nuevo elemento en el editor o renderizo un elemento con IP dinámica?
Hola @artf, Espero que estés bien. Tengo dos preguntas sobre la suma de bloques dinámicos, 1) ¿Es posible renderizar el bloque con id dinám...
Issue #1588
[PREGUNTA]
¡Hola a todos y gracias por vuestro magnífico trabajo y por esta API! Tengo una pregunta sobre la caja, que envuelve todos los componentes...
Issue #1341
[Pregunta] Cómo trabajar con Componentes Personalizados
Hola, Tengo algunas preguntas y problemas sobre y con el editor de uvasProblema 1 En un componente, ¿qué clase se extiende? ¿Es realmente e...
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.