사용자가 어떤 방향으로 스크롤하는지 알 수있는 방법 ScrollView
. 나는 방향에 따라 액션 버튼을 보여주고 싶다. 다음 코드로 방향을 찾으려고합니다.스크롤 방향을 찾으려고 시도
import React, {Component} from 'react'
import { StyleSheet, Alert, ScrollView, View, Text } from 'react-native'
class ScrollDirection extends Component {
constructor(props){
super(props);
this.state = {
offset: 0
}
}
onScroll(event){
var currentOffset = event.nativeEvent.contentOffset.y;
var direction = currentOffset > this.offset ? 'down' : 'up';
this.state.offset = currentOffset;
Alert.alert(direction);
}
render() {
return (
<View style={styles.container}>
<ScrollView onScroll={this.onScroll}>
<View style={styles.scroller}>
<Text style={{fontSize:20,}}>ScrollDirection</Text>
</View>
</ScrollView>
</View>
)
}
}
var styles = StyleSheet.create({
container: {
flex: 1,
marginTop: 50,
},
scroller: {
height: 5000,
},
});
export default ScrollDirection;
위로 이동 위로 스크롤 위로 및 아래로 스크롤 아래로 경고 아래로 스크롤하십시오. 내가 무슨 일을
을하고있는 중이 야 :하지만 다음과 같은 오류를 받고 있어요? 아니면 더 좋은 방법이 있을까요?
감사합니다.
업데이트 1 :
개체 수있는 state.offset을 변경은 onScroll
를 바인더 제본 및 setState를에 onScroll 기능을 변경 :
constructor(props){
super(props);
this.state = {
offset: {}
}
this.onScroll = this.onScroll.bind(this)
}
onScroll(event){
var currentOffset = event.nativeEvent.contentOffset.y;
var direction = currentOffset > this.state.offset ? 'down' : 'up';
this.setState({
offset : currentOffset.y
}),
Alert.alert(direction);
}
하지만 스크롤 방향에 상관없이, 나는군요 알리미는 up
입니다. 내가 뭘 놓치고 있니?
또한 currentOffset은 개체이며 상태 "오프셋은 숫자입니다." – ShaneG
메서드를 바인딩하고 있습니까? 'this.onScroll = this.onScroll.bind (this)'를 생성자에 넣습니다. – G0dsquad
감사합니다. ** 업데이트 1 ** 질문을 업데이트했습니다. 솔루션에 오류가 없어야합니다. 유일한 문제는 내가 스크롤하는 방향에 관계없이 경고를 '위로'표시하는 것입니다. 나는 무엇을 놓치고 있습니까? 많은 감사가 – Somename