Реагировать на нативную прокручиваемую вкладку
Может кто-нибудь помочь мне, как использовать реквизиты onChange в реакции реагировать родной прокрутки вкладок? Любой пример кода? В основном я хочу получить данные, когда вкладка меняется.
<View style={styles.container}>
<ScrollView>
<ScrollableTabView>
<OverViewPage tabLabel = "Overview" contentProps = { this.state = {data : this.state.data , addressDetails : this.state.addressDetails }} />
<OverViewPage1 tabLabel = "OverView1"/>
<OverViewPage2 tabLabel = "OverView2" />
</ScrollableTabView>
</ScrollView>
</View>
Когда я перехожу на сцену OverView1, я хочу получить данные из API и визуализировать возвращенную информацию. В основном я хочу поймать событие, когда вкладка меняется. Я обнаружил, что есть реквизит onChange, но не мог понять, как его использовать. Ценю помощь!! Спасибо!!
1 ответ
ScrollableTabView не передает состояние вкладки дочерним экранам вкладок. Вместо этого в onChangeTab prop объекта ScrollTabView вы можете установить состояние в своем родительском классе React и передать новое состояние дочерним экранам вкладок об активной вкладке в качестве свойств. Что-то вроде следующего:
<ScrollableTabView onChangeTab={(event)=>{this.setStateForTabChange(event.i)}}>
<Scene1 isActive={this.state.isSceneOneVisible} />
<Scene2 isActive={this.state.isSceneTwoVisible} />
</ScrollableTabView>
Вы можете определить setStateForTabChange
который в конечном итоге будет устанавливать значения состояний для активных состояний сцены на основе значения индекса, отправленного onChangeTab.