Мое приложение хорошо работает в моей локальной среде, но при развертывании на сервере консоль выводит сообщение об ошибке: «Неизменяемое нарушение: ожидаемый поиск контекста перетаскивания» при развертывании на сервере.
Я совершенно не понимаю, что случилось. Не могли бы вы дать мне совет относительно того, что может быть основной причиной?
Моя версия локального узла - 8.11.3. И я использую 8.11.3 на сервере для сборки и экспресс-сервер для обслуживания статических файлов в среде облачного узла по умолчанию (v6.7.0).
Я использую:
"response-dnd": "^ 9.0.1"
"response-dnd-html5-backend": "^ 9.0.0"
"response-dnd-touch-backend": "^ 9.0.2"
Я обновил свои пакеты до последней версии, и ошибка возникает в моей локальной среде.
Это потому, что у меня есть ^, и я использую пряжу локально, но npm в облаке для сборки, поэтому я получил разные версии пакета в локальном и dev.
И когда я использую 9.3.3 и 9.3.2, я получил ту же ошибку: «Неизменяемое нарушение: ожидаемый поиск контекста перетаскивания. Я потерял контекст.
И 9.2.1 в порядке.
+1 Я тоже это понимаю
Окружение выглядит так:
"react": "^16.8.6",
"react-dnd": "^9.3.4",
"react-dnd-html5-backend": "^9.3.4",
"react-dom": "^16.8.6",
Это, вероятно, означает, что у вас есть DndProvider
слишком низко оборачивающий компонент в дереве компонентов.
Вы это решили? У меня была такая же проблема, и оказалось, что в моем приложении было несколько библиотек response-dnd разных версий. Надеюсь, это кому-то поможет.
Я тоже столкнулся с той же проблемой. Кто-то нашел решение, поделитесь пожалуйста.
Я не экспортировал <DndProvider />
. Как только я это сделал, все заработало.
вы должны обернуть компонент тестового файла следующим образом:
<DndProvider backend={HTML5Backend}>
<Component />
</DndProvider>
вы должны обернуть компонент тестового файла следующим образом:
<DndProvider backend={HTML5Backend}> <Component /> </DndProvider>
Я действительно хочу, чтобы эта информация была доступна на этой странице http://react-dnd.github.io/react-dnd/docs/overview.
В противном случае пользователям придется пролистать всю реализацию шахматной доски, чтобы найти это.
Я тоже получаю ошибку Expected drag drop context
. Для меня это работает, только если DndProvider
является непосредственным родительским узлом компонента, который использует useDrag
. Однако он работает с более старой версией (9.0.0). Однако подсказка
Он должен быть установлен в верхней части нашего приложения (имеется в виду
DndProvider
).
определенно неправильно.
@markusmauch
Спасибо - это избавило меня от огромной головной боли. Да, здесь документация определенно не точна.
Самый полезный комментарий
вы должны обернуть компонент тестового файла следующим образом:
<DndProvider backend={HTML5Backend}> <Component /> </DndProvider>