Mi aplicación funciona bien en mi entorno local, pero cuando la implemento en el servidor, la consola imprime el error: 'Violación invariable: búsqueda de contexto de arrastrar y soltar esperada' cuando se implementa en el servidor.
No tengo ni idea de lo que está mal. ¿Podría ayudarme a darme algunos consejos sobre cuál puede ser la causa raíz?
Mi versión de nodo local es 8.11.3. Y utilizo 8.11.3 en el servidor para construir y un servidor expreso para servir los archivos estáticos en el entorno de nodo de nube predeterminado (v6.7.0).
Estoy usando:
"react-dnd": "^ 9.0.1"
"react-dnd-html5-backend": "^ 9.0.0"
"react-dnd-touch-backend": "^ 9.0.2"
Actualicé mis paquetes a la última versión y el error se produce en mi entorno local.
Es porque tengo un ^ y uso yarn en local pero npm en la nube para compilar, así que obtuve una versión de paquete diferente en local y dev.
Y cuando uso 9.3.3 y 9.3.2, obtengo el mismo error: 'Violación invariante: búsqueda de contexto de arrastrar y soltar esperada. Perdí el contexto.
Y 9.2.1 está bien.
+1 yo también estoy recibiendo esto
El entorno se parece a:
"react": "^16.8.6",
"react-dnd": "^9.3.4",
"react-dnd-html5-backend": "^9.3.4",
"react-dom": "^16.8.6",
Esto probablemente significa que tiene DndProvider
envolviendo un componente demasiado bajo en su árbol de componentes.
¿Resolviste esto? Tuve el mismo problema y resultó que tenía varias bibliotecas react-dnd de diferentes versiones incluidas en mi aplicación. Ojalá esto ayude a alguien.
También me enfrento al mismo problema. ¿Alguien encontró la solución? Por favor, compártala.
No estaba exportando el <DndProvider />
. Una vez que hice eso, todo funcionó bien.
debe envolver su componente de archivo de prueba así:
<DndProvider backend={HTML5Backend}>
<Component />
</DndProvider>
debe envolver su componente de archivo de prueba así:
<DndProvider backend={HTML5Backend}> <Component /> </DndProvider>
Realmente deseo que esta información esté disponible en esta página http://react-dnd.github.io/react-dnd/docs/overview.
De lo contrario, los usuarios tienen que desplazarse por una implementación completa del tablero de ajedrez para encontrar esto.
También recibo el error Expected drag drop context
. Para mí, esto funciona solo si DndProvider
es el nodo principal inmediato del componente que usa useDrag
. Sin embargo, funciona con una versión anterior (9.0.0). Sin embargo, la pista
Esto debe montarse cerca de la parte superior de nuestra aplicación (es decir,
DndProvider
)
definitivamente está mal.
@markusmauch
Gracias, esto me ahorró un gran dolor de cabeza. Sí, la documentación definitivamente no es precisa aquí.
Comentario más útil
debe envolver su componente de archivo de prueba así:
<DndProvider backend={HTML5Backend}> <Component /> </DndProvider>