모든 컴포넌트
MotionSwipe
밀어서 동작을 드러내고, 원하면 밀어서 없애는 행.
웹React Native제스처
직접 해 보기
가장 짧은 사용법
Row.jsx<MotionSwipe
endActions={<button onClick={() => archive(id)}>Archive</button>}
dismiss="end"
onDismiss={() => remove(id)}
>
<MessagePreview />
</MotionSwipe>;
대신 처리하는 일
- 행이 가로 드래그를 따라오고, 동작 너머에서 버티며, 손을 뗀 속도로 멈춥니다.
dismiss가 있으면 길게 밀거나 던졌을 때 행이 밀려 나가 높이가 접힌 뒤 onDismiss(side)가 실행됩니다.- 세로 스크롤은 그대로이고, 한 번에 한 행만 열려 있습니다.
- 열린 행을 누르면 닫히고, 동작에 키보드 포커스가 가면 드러납니다.
이럴 때 쓰세요
- 받은편지함의 보관·삭제.
- 대화 고정.
- 목록에서 항목 빼기.
Props
| Prop | 타입 | 기본값 | 설명 |
|---|
children | ReactNode | | 행의 내용. |
|---|
startActions | ReactNode | | 행을 끝 방향으로 끌 때 시작 쪽에 드러납니다. |
|---|
endActions | ReactNode | | 행을 시작 방향으로 끌 때 끝 쪽에 드러납니다. |
|---|
dismiss | 'start' | 'end' | 'both' | | 길게 밀거나 던지면 행을 치우는 쪽. |
|---|
onDismiss | (side) => void | | 행이 밀려 나가고 접힌 뒤 실행됩니다. 여기서 데이터의 항목을 지우세요. |
|---|
onOpenChange | (side | null) => void | | 열린 쪽으로, 닫히면 null로 실행됩니다. |
|---|
disabled | boolean | false | 밀기를 끕니다. |
|---|
contentClassName | string | | 행 내용의 클래스. 인라인 스타일은 contentStyle. |
|---|
transition | Transition | spring | 시간 곡선 { duration, easing } 또는 스프링 { tempo: 'spring', spring }. 스프링은 끊겨도 속도를 이어갑니다. |
|---|
그 밖의 props는 그려지는 요소로 전달되므로 className, style, 이벤트 핸들러를 평소처럼 쓸 수 있습니다.