Hoy vamos a aprender cómo podemos arrastrar elementos por la pantalla con React.

1️⃣ Instalar react-draggable
Primero, instala la librería con npm o yarn:
npm install react-draggable # o yarn add react-draggable
2️⃣ Crear el componente de arrastre
Ahora, crearemos un componente básico que se pueda arrastrar:
import React from "react";
import Draggable from "react-draggable";
const DraggableBox: React.FC = () => {
return (
<Draggable>
<div className="w-40 h-40 bg-blue-500 text-white flex items-center justify-center cursor-move rounded-lg shadow-lg">
Arrástrame
</div>
</Draggable>
);
};
export default DraggableBox;
🔹 Explicación:
Draggablees un contenedor que permite arrastrar cualquier contenido dentro de él.- La
divdentro deDraggabletiene estilos para que sea visible y fácil de arrastrar.
3️⃣ Usarlo en tu aplicación
Importa y usa el componente en App.tsx o cualquier otro archivo:
import React from "react";
import DraggableBox from "./DraggableBox";
const App: React.FC = () => {
return (
<div className="h-screen flex items-center justify-center bg-gray-100">
<DraggableBox />
</div>
);
};
export default App;
🔥 Mejoras avanzadas
Si quieres restringir el área de arrastre o manejar eventos cuando se arrastra, puedes usar las props bounds, onStart, onDrag, y onStop:
<Draggable
bounds="parent"
onStart={() => console.log("Comenzó el arrastre")}
onStop={() => console.log("Se soltó el elemento")}
>
<div className="w-40 h-40 bg-green-500 text-white flex items-center justify-center cursor-move rounded-lg shadow-lg">
Arrástrame dentro del contenedor
</div>
</Draggable>
📌 Propiedades útiles de Draggable:
| Propiedad | Descripción |
|---|---|
bounds="parent" | Restringe el movimiento dentro del contenedor padre. |
onStart={fn} | Función que se ejecuta cuando inicia el arrastre. |
onStop={fn} | Función que se ejecuta cuando se suelta el elemento. |
onDrag={fn} | Función que se ejecuta mientras se está arrastrando. |
Ahora ya puedes implementar elementos arrastrables en React de forma sencilla usando react-draggable. Si necesitas una funcionalidad más avanzada como drag and drop entre listas, puedes explorar react-beautiful-dnd o react-dnd.

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.