Требуется несколько изменений tldr; вот рабочая ссылка,
https://codesandbox.io/s/unruffled-bogdan-x98ff
Изображения были немного изменены, одна вещь react-draggable
упоминает в своей документации, что компоненты должны принимать несколько переданные свойства. ссылка на документы
Пример компонента «Изображения» для иллюстрации.
import React from "react";
const Images = ({
download_url,
className,
style,
onMouseDown,
onMouseUp,
onTouchStart,
onTouchEnd
}) => {
return (
<img
onMouseDown={onMouseDown}
onMouseUp={onMouseUp}
onTouchStart={onTouchStart}
onTouchEnd={onTouchEnd}
className={className}
style={style}
src={download_url}
alt="photos"
width="50px"
height="50px"
/>
);
};
export default Images;
Я сделал его слишком подробным вместо того, чтобы расширять, чтобы вы могли видеть требуемые свойства.
В приложении. js Я внес эти изменения, сначала в настройках состояния здесь
async componentDidMount() {
const res = await axios.get("https://picsum.photos/v2/list?limit=5");
const urlImages = [...res.data];
this.setState({ urlImages });
}
И собственно рендеринг изображений
{urlImages.map(data => (
<Draggable>
<Images key={data.id} download_url={data.download_url} />
</Draggable>
))}
Это получает изображения на странице, и их можно перетаскивать, я лично никогда не использовал react-draggable
, поэтому я уверен, что есть некоторые улучшения, которые можно сделать, чтобы сделать их более плавными, и т. д. c. Однако мы надеемся, что это укажет вам правильное направление.