Saya memiliki elemen scrollView dan saya ingin memanggil fungsi panggilan balik yang berbeda jika pengguna menggulir ke bawah atau ke atas
Bagaimana saya bisa memanggil acara scrollView gulir ke atas atau ke bawah di React Native? [tertutup]
Jawaban (1)
Anda dapat menggunakan prop onScroll untuk mendapatkan notifikasi setiap kali pengguna men-scroll.
Untuk mencapai efek yang Anda inginkan, Anda hanya perlu menyimpan posisinya dan jika ada pembaruan, periksa apakah posisi y berubah dengan jumlah piksel positif (bawah) atau dengan jumlah piksel negatif (naik).
Sebagai komponen React yang fungsional, tampilannya akan seperti ini:
function MyComponent() {
// we use a ref here in order to store the value between rendering without triggering an update (like useState would)
const scrollYRef = useRef(0)
return (
<ScrollView
onScroll={(event) => {
// 0 means the top of the screen, 100 would be scrolled 100px down
const currentYPosition = event.nativeEvent.contentOffset.y
const oldPosition = scrollYRef.current
if(oldPosition < currentYPosition) {
// we scrolled down
} else {
// we scrolled up
}
// save the current position for the next onScroll event
scrollYRef.current = currentYPosition
}}
....
/>
)
}
person
Maddis
schedule
05.11.2020