Advertisement
Guest User

react-native-swiper-ad-infinitum

a guest
Jan 28th, 2019
953
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2.  
  3. import { StyleSheet, Text, View } from 'react-native';
  4.  
  5. import Swiper from 'react-native-swiper';
  6.  
  7. const cache = {
  8.   "0": "zero",
  9.   "1": "one",
  10.   "2": "two",
  11.   "3": "three",
  12.   "4": "four",
  13.   "5": "five",
  14.   "6": "six",
  15.   "7": "seven",
  16.   "8": "eight",
  17.   "9": "nine",
  18.   "10": "ten"
  19. }
  20.  
  21. const styles = StyleSheet.create({
  22.   wrapper: {
  23.   },
  24.   slide1: {
  25.     flex: 1,
  26.     justifyContent: 'center',
  27.     alignItems: 'center',
  28.     backgroundColor: '#9DD6EB',
  29.   },
  30.   slide2: {
  31.     flex: 1,
  32.     justifyContent: 'center',
  33.     alignItems: 'center',
  34.     backgroundColor: '#97CAE5',
  35.   },
  36.   text: {
  37.     color: '#fff',
  38.     fontSize: 30,
  39.     fontWeight: 'bold',
  40.   }
  41. })
  42.  
  43. export default class App extends Component {
  44.  
  45.   state = {
  46.     pages: ["2", "3", "4"],
  47.     key: 1
  48.   }
  49.  
  50.   renderItem(item, idx) {
  51.     const itemInt = parseInt(item)
  52.     const style = itemInt % 2 == 0 ? styles.slide1 : styles.slide2
  53.     return (
  54.       <View style={style} key={idx}>
  55.         <Text style={styles.text}>{cache[item]}</Text>
  56.       </View>
  57.     )
  58.   }
  59.  
  60.   onPageChanged(idx) {
  61.     if (idx == 2) {
  62.       const newPages = this.state.pages.map(i => (parseInt(i)+1).toString())
  63.       this.setState({pages: newPages, key: ((this.state.key+1)%2) })
  64.     } else if (idx == 0) {
  65.       const newPages = this.state.pages.map(i => (parseInt(i)-1).toString())
  66.       this.setState({pages: newPages, key: ((this.state.key+1)%2) })
  67.     }
  68.   }
  69.  
  70.   render() {
  71.     return (
  72.       <Swiper
  73.         index={1}
  74.         key={this.state.key}
  75.         style={styles.wrapper}
  76.         loop={false}
  77.         showsPagination={false}
  78.         onIndexChanged={(index) => this.onPageChanged(index)}>
  79.         {this.state.pages.map((item, idx) => this.renderItem(item, idx))}
  80.       </Swiper>
  81.     );
  82.   }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement