в библиотеке dnd-multi-backend , есть инструкции с таким текстом:
Так как встроенный Drag-n-Drop в настоящее время не поддерживается на сенсорных устройствах.Требуется пользовательский DragPreview .Посмотрите пример для примера реализации.
Но ссылка на пример не работает.У кого-нибудь есть пример того, как добавить «призрачный» предварительный просмотр при перетаскивании элемента на сенсорные устройства?
PS На ноутбуках предварительный просмотр работает.Опция предварительного просмотра в HTML5toTouch
установлена на true
.
1) При использовании dnd-multi-backend dnd на ноутбуках и сенсорных устройствах работает, но нет предварительного просмотра на сенсорных устройствах:
import MultiBackend, { TouchTransition } from 'react-dnd-multi-backend';
import TouchBackend from 'react-dnd-touch-backend';
import HTML5Backend from 'react-dnd-html5-backend';
const HTML5toTouch = {
backends: [
{
backend: HTML5Backend,
},
{
backend: TouchBackend({
enableMouseEvents: true,
enableTouchEvents: true,
touchSlop: 20,
}), // Note that you can call your backends with options
preview: true,
transition: TouchTransition,
},
],
};
export default DragDropContext(MultiBackend(HTML5toTouch))(MyPage);
2) При использовании [TouchBackend] + [HTML5Backend] + [Modernizr] : при таком перетаскивании кода на сенсорные устройства неработа :
export default DragDropContext(
Modernizr.touchevents ? TouchBackend : HTML5Backend,
)(MyPage);
3) Я пытался добавить Preview , но он не отслеживает при перетаскивании :
import MultiBackend, {
TouchTransition,
Preview,
} from 'react-dnd-multi-backend';
const generatePreview = (object) => (
<div style={{ backgroundColor: 'red' }}>Generated</div>
);
<Preview generator={generatePreview} />