Añadiendo a componentes anidados
¡Lo he descubierto! Solo tenía que especificar la posición del array :-) Después de usar 'component.find('fieldset')', asegúrate de establecer una posición del array 'fieldSet[0].append(questionFieldSet);'
Lee la respuesta completa abajo ↓Pregunta
Estoy usando component.find() para buscar un componente anidado en una gran parte de contenido HTML para una etiqueta de conjunto de campos y así poder añadir componentes después. Component.find localiza el componente, como se ve en el console.log, pero intentar .append o usar .components para inyectar contenido resulta en un error de consola: fieldSet.append no es una función.
El objetivo es usar Traits para inyectar un fragmento de HTML usando la variable 'questionFieldSet' en el formulario después del primer 'fieldset'.
Si uso editor.getSelected().append, el HTML se inyecta pero en la posición incorrecta como se esperaba. Necesito inyectar profundamente dentro del componente anidado y .find() o .closest() no parece funcionar.
¿Qué API debería usarse para aplicar a componentes anidados? ¿Es esta la estructura adecuada para un componente con grandes bloques de HTML?
https://codesandbox.io/s/weathered-shape-xubqn
Para reproducir:
- Arrastra un bloque de Formulario de Solicitud sobre el lienzo.
- Selecciona el formulario de solicitud en el lienzo y haz clic en el icono de engranaje para cargar los rasgos
- Haz clic en "Añadir pregunta" en el gestor de rasgos.
Gracias
Respuestas (1)
¡Lo he descubierto! Solo tenía que especificar la posición del array :-)
Después de usar 'component.find('fieldset')', asegúrate de establecer una posición del array 'fieldSet[0].append(questionFieldSet);'
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1888
[Pregunta] Añadir html personalizado dentro de Canvas
Hola, Estoy usando uvas para exportar un json personalizado con toda la información que necesito, en lugar de HTML y CSS. Para hacer eso, e...
Issue #1733
Cómo eliminar la etiqueta de script que se añade mediante el script de añadir bloques
Hola @artf Quiero exportar contenido html final/basado en producción excluyendo el script (solo que se añade con el gestor de bloques). Sup...
Issue #1813
[Pregunta]: No se puede obtener el componente correcto de la callback de editor.on events
Estoy usando eventos del editor para obtener componente tras alguna acción como 'component:añadir', 'bloquear:arrastrar:detener', pero en a...
Issue #460
Cuando la vista del componente modifica el HTML, los componentes de texto ya no son editables
Estoy intentando crear un componente personalizado que contenga algo de texto lorem ipsum en el contenido, para editarlo una vez que esté 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.