onIndexChanged not called, wrong screen rendered

Author: ivpusicCreated Aug 9, 2017Updated Apr 25, 2025
LabelsNeed answer from author

Version

Which versions are you using:

  • react-native-swiper v1.5.8
  • react-native v0.47.1

Expected behavior

  1. onIndexChanged should be called when I swipe
  2. first View should be rendered as the first screen

Actual behavior

  1. not called
  2. third View (with "And simple" message) is rendered as first

Code example

javascript
export default class AppIntro extends PureComponent {

  onSwipe = (index) => {
    console.log('index changed', index);
  }

  render() {
    return (
      <Swiper style={styles.wrapper} onIndexChanged={this.onSwipe}>
        <View style={styles.slide1}>
          <Text style={styles.text}>Hello Swiper</Text>
        </View>
        <View style={styles.slide2}>
          <Text style={styles.text}>Beautiful</Text>
        </View>
        <View style={styles.slide3}>
          <Text style={styles.text}>And simple</Text>
        </View>
      </Swiper>
    );
  }
}

Source: leecade/react-native-swiper