Issue #3986💬 RespondidoAbierto el 1 de diciembre de 2021por throne1986Reacciones 3

No se pueden leer propiedades de undefined (leyendo 'uploadFile')

Respuesta rápidapor jkntar1

Yo también me encontré con este problema. Parecía ocurrir cada vez que empezaba a arrastrar el icono de medios de un bloque en lugar del texto del bloque o el contenedor del bloque. Parece que el problema se resolvió añadiendo 'pointer-events: none;' a los estilos de imagen multimedia de cada uno de mis bloques. La im...

Lee la respuesta completa abajo ↓

Pregunta

Versión GrapesJS

  • Confirmo que se debe usar la última versión de GrapesJS

¿Qué navegador usas?

Chrome v96.0.4664.45

Enlace de demo reproducible

https://codesandbox.io/s/react-redux-toolkit-application-forked-l5rhp?file=/src/pages/Editor.js

Describe el bicho

¿Cómo reproducir el bicho?

  1. Simplemente arrastra y suelta el logo en Canvas, deberías tener el error

! imagen

¿Cuál es el comportamiento esperado? Arrastra y suelta el logo en lienzo

¿Cuál es el comportamiento actual? He creado un plugin personalizado sencillo solo un logo, y ahora cuando arrastro y suelto en Canvas me aparece el siguiente error Cannot propiedades de lectura de indefinidas (leyendo 'uploadFile')

Si es necesario ejecutar algo de código para reproducir el error, pégalo aquí abajo: '''js importar React, { useState, useEffect } de "react"; importar { useDispatch } de "react-redux"; importar uvas de "uvasjs"; importar bloque de "grapesjs-blocks-basic";

const Editor = () => { const [editor, setEditor] = useState(); const dispatch = useDispatch();

Plugin personalizado de logotipo función pageLogo(editor) { editor. BlockManager.add("logo", { label: '<div className="gjs-block-label"><img src="https://i.ibb.co/nL2Q7WN/logo.png"></div>', Contenido: '<span><img src="https://i.ibb.co/nL2Q7WN/logo.png" /></span>', Categoría: { id: "logo", etiqueta: "Logo", Abierto: Verdadero } }); }

useEffect(() => { const editor = grapesjs.init({ contenedor: "#editor", storageManager: false, blockManager: cierto, plugins: [pageLogo] });

setEditor (editor); }, [despacho]);

regreso ( <> <div className="ModalVideos"></div> <div id="editor"></div> </> ); };

exportar el editor por defecto;

@artf ¿Qué estoy haciendo mal aquí?

### Código de conducta

- [X] Acepto seguir el Código de Conducta de este proyecto

Respuestas (4)

jkntar3 de diciembre de 2021

Yo también me encontré con este problema. Parecía ocurrir cada vez que empezaba a arrastrar el icono de medios de un bloque en lugar del texto del bloque o el contenedor del bloque. Parece que el problema se resolvió añadiendo 'pointer-events: none;' a los estilos de imagen multimedia de cada uno de mis bloques.

La imagen de la que hablo siendo arrastrada: ! imagen

En mi caso: '''javascript editor. BlockManager.add('lx-button', { etiqueta: 'LiveX Button', Medios: '<img style="width: 32px; height: 32px; filter: invert(0.75); pointer-events: none;" src='https://www.svgrepo.com/show/368574/button.svg' />', categoría: 'LiveX', Contenido: ' <div class='lx-button normal'>Ver detalles</div> `, })

markovic-nikola8 de diciembre de 2021

'pointer-events: none;' no me funciona, literalmente tengo que reiniciar todo el navegador para que vuelva a funcionar con normalidad.

luasenvy17 de diciembre de 2021

'pointer-events: none;' no me funciona, literalmente tengo que reiniciar todo el navegador para que vuelva a funcionar con normalidad.

@markovic-nikola: Esto es MUY IMPORTANTE. MUCHAS GRACIAS. :D

ClaudeCode17 de mayo de 2026

Gracias por informar de esto, @throne1986.

Buena pregunta sobre No se pueden leer propiedades de undefined (leyendo 'uploadFile'). El enfoque recomendado con Canvas es usar la API orientada a eventos.

Empieza aquí:

  1. Consulta la documentación de GrapesJS de tu módulo específico
  2. Busca el método del oyente de eventos 'on()'
  3. 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.

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 →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.