ParseStyle no es una función
Esto se comporta como se espera. Hay dos teclas similares que pueden alterar el estilo del componente. ('estilos' y 'estilo') 'styles' toma una cadena CSS y se conecta una vez a la carga útil final. Normalmente defino el CSS por defecto o CSS por defecto con un estado específico para el componente. 'Style' toma un has...
Lee la respuesta completa abajo ↓Pregunta
Versión GrapesJS
- Confirmo que se debe usar la última versión de GrapesJS
¿Qué navegador usas?
Firefox 104.0.1
Enlace de demo reproducible
https://codesandbox.io/s/grapesjs-parsestyle-bug-13h771
Describe el bicho
¿Cómo reproducir el bicho?
- Crear un componente personalizado con la propiedad 'style' en su 'modelo'.
- Utiliza 'this.addAttributes' en la función de componentes 'model', 'init'.
- Añadir ese componente al editor.
Básicamente, usando 'this.addAttributes' cuando tengo una propiedad 'style' en la definición de mi componente 'model', me da este problema.
Tuve el mismo problema en la v0.19.4.
Puedes ver el siguiente error en el navegador.
TypeError: this.parseStyle no es una función
valor Component.js:499
valor Component.js:407
Backbone 5
Valor Component.js:425
valor Component.js:437
init tabs-content.jsx:20
valor Component.js:174
Columna vertebral de modelos
v bundle.js:27066
n StyleableModel.js:7
E bundle.js:24773
n bundle.js:24799
r Columna vertebral
Valor Components.js:151
Backbone 3
Valor Components.js:197
valor Component.js:909
valor Component.js:169
Columna vertebral de modelos
v bundle.js:27066
n StyleableModel.js:7
E bundle.js:24773
n bundle.js:24799
r Columna vertebral
Valor Components.js:151
Backbone 3
Valor Components.js:197
valor Component.js:909
valor Component.js:169
Columna vertebral de modelos
v bundle.js:27066
n StyleableModel.js:7
E bundle.js:24773
n bundle.js:24799
r Columna vertebral
Valor Components.js:151
Backbone 3
Valor Components.js:197
valor Component.js:909
valor Component.js:169
Columna vertebral de modelos
v bundle.js:27066
n StyleableModel.js:7
E bundle.js:24773
n bundle.js:24799
Él bundle.js:45517
n bundle.js:45529
e Frame.ts:55
s Page.ts:29
e Page.ts:26
modelo Pages.ts:13
Backbone 4
loadProjectData Module.ts:164
carga index.ts:285
O Editor.ts:721
loadData Editor.ts:720
O Editor.ts:703
s bundle.js:50594
s bundle.js:50606
A bundle.js:50495
Promesa de Llamada de Respuesta*L bundle.js:50513
v bundle.js:50516
v bundle.js:50492
carga bundle.js:51037
loadOnStart Editor.ts:209
s bundle.js:50594
s bundle.js:50606
v bundle.js:50516
v bundle.js:50492
loadOnStart Editor.ts:204
handler setTimeout*./node_modules/grapesjs/dist/grapes.min.js/</n.prototype.loadOnStart Editor.ts:199
Init index.js:76
FormBuilder FormBuilder.jsx:27
React 8
WorkLoop scheduler.development.js:266
Flush scheduler.development.js:239
performWorkUntilDeadline scheduler.development.js:533
js scheduler.development.js:571
JS scheduler.development.js:633
React de fábrica actualización:6
Webpack 18
Object { level: "error" }
backbone.js:370
Si es necesario ejecutar algo de código para reproducir el error, pégalo aquí abajo: '''js importar uvas de "uvasjs"; importación "grapesjs-bloques-básico";
const customPlugin = (editor) => { editor. DomComponents.addType("custom", { modelo: { Predeterminados: { etiquetaNombre: "div", nombre: "Custom", estilo: { "Altura mínima": "64px" } }, init() { this.addAttributes({ Rol: "Tabpanel" }); } } }); };
const editor = grapesjs.init({ contenedor: "#gjs", fromElement: 1, storageManager: { type: 0 }, plugins: [customPlugin] });
editor.addComponents({ type: "custom" });
### Código de conducta
- [X] Acepto seguir el Código de Conducta de este proyecto
Respuestas (3)
Esto se comporta como se espera. Hay dos teclas similares que pueden alterar el estilo del componente. ('estilos' y 'estilo')
'styles' toma una cadena CSS y se conecta una vez a la carga útil final. Normalmente defino el CSS por defecto o CSS por defecto con un estado específico para el componente.
'Style' toma un hash CSS y se conecta directamente a ese componente específico con el id.
Puedes exportar el HTML y ver cómo se comportan.
Aquí está el documento relacionado: ! imagen
Supongo que 'ParseStyle no es una función' se refiere a esto ya corregido: https://github.com/artf/grapesjs/pull/4520
Gracias por informar de esto, @ahmafi.
Buena pregunta sobre ParseStyle no es una función. El enfoque recomendado con StyleManager es usar la API orientada a eventos.
Empieza aquí:
- Consulta la documentación de GrapesJS de tu módulo específico
- Busca el método del oyente de eventos 'on()'
- La mayoría de las operaciones se pueden realizar escuchando eventos del editor y de los componentes
Patrones comunes: '''javascript Prestad atención a los cambios editor.on('Change', () => console.log('Something Changed'));
Ciclo de vida de los componentes editor.on('component:mount', (c) => console.log('component ready', c)); editor.on('component:update', (c) => console.log('component updated', c));
**Si sigues atascado:**
- Compartir una reproducción mínima de CodeSandbox
- Incluye lo que ya has probado
- Menciona tu versión GrapesJS
- ¡La comunidad está aquí para ayudar!
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #5990
Cuando eliminas un componente, las clases duplicadas entre componentes se eliminan.
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? Chrome 126.0.6478.127 (Windows) Enlace de...
Issue #4576
Al hacer clic en 'envolver para estilo' afecta los componentes internos de otros componentes dentro del mismo cuadro de texto
Versión GrapesJS[X] Confirmo que se debe usar la última versión de GrapesJS¿Qué navegador usas? Chrome 104.0.5112.101 Enlace de demo reprod...
Issue #4350
El Gestor de Estilos no actualiza el segundo plano cuando se selecciona un componente
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? Brave Browser V1.39.111 Enlace de demo re...
Issue #6096
La caja redimensionable desaparece al volver a seleccionar componentes
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? Chrome Enlace de demo reproducible https:...
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 →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Tutorial
Ship to Production Faster: What’s New in GrapesJS Shadcn
Supercharge your page builder! GrapesJS Shadcn adds live drag previews, rich text / commands, dynamic data, and canvas presets to ship to prod faster.
Tutorial
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
Tutorial
Embed GrapesJS in Your SaaS: A Weekend Guide
Embed GrapesJS in your SaaS and ship a white-label page builder over a weekend. Honest tradeoffs, real code, and the plugins that close the UX gap.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.