0

當滾動到達某個位置時,如何更改React Native ScrollView的參數scrollEnabled的布爾值?在RN中動態設置scrollEnabled爲False ScrollView

我在ScrollView中有一個ScrollView,而內部的ScrollView由於外部的ScrollView而沒有響應。 Inner ScrollView在scrollEnabled參數設置爲外部ScrollView的False時適用。我的想法是當到達底部時,將外部ScrollView動態設置爲scrollEnabled={false}。我該怎麼做呢。

謝謝,

+0

你究竟想要達到什麼目的? –

+1

使用狀態。 'scrollEnabled = {this.state.scrollEnabled}'then this.setState({scrollEnabled:false}); – eden

回答

0

滾動型部件具有丙回調函數onScroll: ({nativeEvent: {contentOffset: {y}}, contentSize: {height}})

所以你可以在你的狀態下有一個scrollEnabled變量。如果contentOffset.y等於或大於contentSize.heightfalse,則將其設置爲true

確保您不需要撥打setState電話。因爲即使前一個狀態與新狀態完全相同,它也會使組件每次都重新顯示。

0

向您的滾動視圖/列表視圖提供ref。然後使用以下來更改scrollEnabled值。

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

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