Issue #2426✓ ResueltoAbierto el 25 de noviembre de 2019por HoviusReacciones 3

¿Cómo manejar componentes antiguos (json) con una nueva configuración de editor?

Respuesta rápidapor artf2

¿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)

👍 Muy útilartf29 de noviembre de 2019

¿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

Hovius2 de diciembre de 2019

¡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.

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.