0

scrollEnabled 스크롤의 특정 위치에 도달했을 때 React Native ScrollView의 bool 값을 어떻게 바꿀 수 있습니까?RN에서 scrollEnabled를 False로 동적으로 설정합니다. ScrollView

ScrollView 내부에 ScrollView가 있고 외부 ScrollView로 인해 내부 ScrollView가 응답하지 않습니다. 내부 ScrollView는 scrollEnabled 매개 변수가 외부 ScrollView의 False으로 설정된 경우 작동합니다. 내 생각은 아래쪽에 도달하면 바깥 쪽 ScrollView를 scrollEnabled={false}으로 동적으로 설정하는 것입니다. 어떻게해야합니까?

+0

달성하려는 목표는 무엇입니까? –

+1

상태를 사용하십시오. 'scrollEnabled = {this.state.scrollEnabled}'then this.setState ({scrollEnabled : false}); – eden

답변

0

있는 ScrollView 구성 요소

덕분에, 소품 콜백 함수 onScroll: ({nativeEvent: {contentOffset: {y}}, contentSize: {height}}) 있습니다.

따라서 귀하는 귀하의 주에서 scrollEnabled 변수를 가질 수 있습니다. contentOffset.ycontentSize.height 이상이고 그렇지 않은 경우 false 이상인 경우 true으로 설정하십시오.

불필요한 setState 전화를 걸지 않았는지 확인하십시오. 이전 상태가 새 상태와 완전히 같아 지더라도 구성 요소가 매번 다시 렌더링됩니다.

0

scrollview/listview에 ref을 입력하십시오. 다음을 사용하여 scrollEnabled 값을 변경하십시오.

render() { 
    return <ScrollView ref="scrollView" />; 
} 

onSomeEvent() { 
    this.refs.scrollView.setScrollEnabled(true); // will enable scroll 
} 
관련 문제