Bám theo thao tác kéo, có lực cản khi vượt điểm dừng lớn nhất và dừng theo tốc độ bạn thả; một cú hất chuyển một điểm dừng hoặc đóng lại.
Thao tác kéo cảm ứng được chuyển cho nội dung cuộn: kéo xuống sẽ cuộn nội dung về đầu trước khi sheet di chuyển.
Điểm dừng dưới dạng tỉ lệ màn hình, pixel hoặc 'content' theo kích thước tự nhiên của nội dung.
Sheet dạng modal giữ focus bên trong, làm trang vô hiệu và đóng bằng Escape hoặc lớp nền.
Dùng cho
Bảng bộ lọc.
Menu chia sẻ.
Ngăn kéo điều hướng với side="start".
Props
Prop
Kiểu
Mặc định
Mô tả
open
boolean
false
Sheet có đang hiển thị hay không.
onOpenChange
(open) => void
Chạy với false khi sheet bị đóng bằng kéo, chạm hoặc Escape.
detents
(number | 'content')[]
['content']
Kích thước khi nghỉ: tỉ lệ màn hình, pixel hoặc 'content'.
detent
number
Index điểm dừng được kiểm soát.
defaultDetent
number
0
Index điểm dừng dùng khi mở mà không có detent.
onDetentChange
(index) => void
Chạy với index của điểm dừng nơi sheet dừng lại.
side
'bottom' | 'top' | 'start' | 'end'
'bottom'
Cạnh mà sheet xuất hiện từ đó.
modal
boolean
true
Thêm lớp nền, giữ focus bên trong và làm trang vô hiệu.
dismissible
boolean
true
Kéo quá điểm dừng nhỏ nhất, lớp nền và Escape sẽ đóng nó.
backdropClassName
string
Class cho lớp nền; backdropStyle đặt style nội tuyến của nó.
transition
Transition
spring
Đường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
Các props khác được chuyển tới phần tử được render, nên className, style và trình xử lý sự kiện hoạt động như bình thường.
Web và React Native
Trên web, sheet dạng modal là một dialog native; bảng là một cột flex mà bạn tạo kiểu bằng className.
Trên React Native, nó render trong một Modal trong suốt và nút quay lại sẽ đóng nó. Các ScrollView bên trong giữ cử chỉ riêng, nên sheet được kéo từ tay cầm, phần đầu và các vùng tĩnh khác.