すべてのコンポーネント
MotionSwipe
スワイプでアクションを表示し、必要ならスワイプで消せる行。
WebReact Nativeジェスチャー
試してみる
いちばん短い使い方
Row.jsx<MotionSwipe
endActions={<button onClick={() => archive(id)}>Archive</button>}
dismiss="end"
onDismiss={() => remove(id)}
>
<MessagePreview />
</MotionSwipe>;
代わりに処理してくれること
- 行は横方向のドラッグに追従し、アクションを越えると抵抗し、離したときの速度で落ち着きます。
dismiss を指定すると、大きくスワイプするか投げるように払うと行がスライドして出ていき、高さが縮んでから onDismiss(side) が呼ばれます。- 縦スクロールはそのまま使え、開いておける行は 1 つだけです。
- 開いている行をタップすると閉じ、アクションにキーボードフォーカスが当たると表示されます。
こんなときに
- 受信箱でのアーカイブや削除。
- 会話をピン留めする。
- リストから項目を削除する。
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、イベントハンドラーはいつもどおり使えます。