Skip to main content

react-native-drax

Drag‑and‑drop for React Native. Done right.

Sortable lists, grids, cross-container drag, drag handles, collision algorithms, and more. Built on Reanimated 4 with a UI-thread-first architecture for smooth 60fps interactions on iOS, Android, and Web.

npm install react-native-drax

List-Agnostic Sortable

Works with FlatList, FlashList, LegendList, or any list component. One API, any renderer.

Cross-Container Drag

Move items between lists for kanban boards. Phantom slots, auto-scroll, and smooth transfers.

UI-Thread Performance

Spatial index worklet runs hit-testing on the UI thread. SharedValues split by update frequency for 60fps.

19 Callback Events

Full drag lifecycle control: drag start, enter, over, exit, end, drop, snap, monitor — and continuous callbacks.

Three Platforms

iOS, Android, and Web. New Architecture (Fabric) compatible. Built on Reanimated 4 + Gesture Handler 3.

Composable Architecture

Use DraxList for convenience, or compose useSortableList + SortableContainer + SortableItem for full control.

Three lines to drag. Five to sort.

App.tsx
import { DraxProvider, DraxView } from 'react-native-drax';

function App() {
return (
<DraxProvider>
<DraxView
style={{ width: 100, height: 100, backgroundColor: 'blue' }}
onDragStart={() => console.log('dragging')}
payload="hello"
/>
<DraxView
style={{ width: 100, height: 100, backgroundColor: 'green' }}
onReceiveDragDrop={({ dragged: { payload } }) => {
console.log(`received: ${payload}`);
}}
/>
</DraxProvider>
);
}

How Drax compares

FeatureDraxreanimated-dndsortables
Free-form drag & dropYesYesNo
Sortable listYesYesYes
Sortable gridYesYesYes
Cross-container drag (kanban)YesNoNo
List-agnosticYesNoNo
Drag handlesYesYesNo
Collision algorithms3 modesYesNo
Drag boundsYesYesNo
Drop zone acceptanceYesNoNo
Monitoring viewsYesNoNo
UI-thread hit-testingYesNoNo
Hover styles5 statesNoNo
Animation presets5 + customYesNo
Snap alignment9-pointNoNo
AccessibilityYesYesNo
Continuous drag callbacksYesNoNo
Reanimated version443
Gesture Handler version3 (beta)~2.302
Web supportYesNoNo