¿Cómo forzar el re-renderizado de un componente?
Al final activé un evento en cada objeto 'eliminado' que hacía que activaran sus propias actualizaciones. Hice esto con un objeto de configuración, pero aquí tienes un borrador más específico de mi código. Estos son componentes de dom sombra, así que 'this.parent().closest('pathway')' es un selector para '<pathway></p...
Lee la respuesta completa abajo ↓Pregunta
const component = DomComponents.addType(name, {
modelo: {
eliminado() {
const caminosPadre = este.padre().más cercano('vías-interactivas');
if (pathwaysParent) {
Esto no funciona. No existe tal función. He sacado este ejemplo de: https://github.com/artf/grapesjs/issues/1227#issuecomment-399754486
pathwaysParent.render();
}
},
}
}
Cuando intento lo siguiente en lugar de 'pathwaysParent.render()', obviamente se crea un bucle infinito:
const coll = pathwaysParent.collection;
const at = coll.indexOf(pathwaysParent);
coll.remove(pathwaysParent);
coll.add(pathwaysParent, { at });
Puedo acceder al el en 'pathwaysParent.view.el', pero sigo buscando una buena forma de forzar que el componente DOM se vuelva a renderizar de una forma que no sea hackeada.
Respuestas (1)
Al final activé un evento en cada objeto 'eliminado' que hacía que activaran sus propias actualizaciones. Hice esto con un objeto de configuración, pero aquí tienes un borrador más específico de mi código. Estos son componentes de dom sombra, así que 'this.parent().closest('pathway')' es un selector para '<pathway></pathway>'
this.closest(lo que sea) siempre es 0.
vía const = este.padre().más cercano('ruta');
Esto solo se despacha una vez, porque (probablemente) los nodos se eliminan de los padres -> hacia abajo.
si (vía) {
pathway.view.el.dispatchEvent(
new CustomEvent('step:title-updated', {
Burbujas: Cierto,
}),
);
}
En general, volver a renderizar no es trabajo del editor. Aunque habría estado contentando actualizando todo el contenido, pero sin acceso al objeto 'editor' desde 'eliminado'.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #792
La propiedad de script usando función no funciona con bloques
En la documentación de Componentes & JS hay este ejemplo: Esto funciona perfectamente. Pero no podría usar una función en lugar de una cade...
Issue #868
[BUG]: el evento "component:add" se activa cuando se mueven componentes
Tomado de https://github.com/artf/grapesjs/wiki/API-Editorcomponent:add - Se activa cuando se añade un nuevo componente al editor, el model...
Issue #2839
[Pregunta] Añadí un componente llamado plantilla en los bloques, pero cuando intento arrastrar otros componentes dentro de ese componente plantilla, se arrastra, pero tras guardarlo elimina todos los componentes que hay dentro. ¿Cómo evitar esto?
Este es el código del componente de plantilla: '''js exportar default { init(editor) { editor. DomComponents.addType('myTemplate', { isComp...
Issue #774
Imita el comportamiento de un custom RTE al analizar contenido
Hola @artf, Me gustaría replicar este comportamiento al llamar a 'editor.setComponents("<div>Esto es un componente de texto. <span style='f...
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.