Как использовать метод goToSlide в react-native-app-intro-slider? - PullRequest
0 голосов
/ 27 мая 2020

Я использую библиотеку response-native-app-intro-slider

Я делаю собственный renderPagination, но не могу использовать метод goToSlide в библиотеке.

Я уже пробовал настраивать Pagination Кнопки регистрации в системе, но я тоже не могу их использовать.

Это мой код:

const _renderPagination = (activeIndex) => {
return (
  <View style={style.paginationContainer}>
    <SafeAreaView>
      <View style={style.paginationDots}>
        {slides.length > 1 &&
          slides.map((_, i) => (
            <TouchableOpacity
              key={i}
              style={[
                style.dot,
                i === activeIndex
                  ? {backgroundColor: '#9948fc'}
                  : {backgroundColor: 'rgba(0, 0, 0, .2)'},
              ]}
            onPress={() => goToSlide(activeIndex, true)} //Error
            />
          ))}
      </View>
      {activeIndex === slides.length - 1 ? (
        <View>
          <TouchableOpacity
            style={[style.button, {backgroundColor: '#9948fc'}]}
            onPress={() => navigation.navigate('signup')}
            >
            <Text style={style.buttonText}>회원가입</Text>
          </TouchableOpacity>
          <TouchableOpacity
            style={[style.button, {backgroundColor: 'transparent'}]}
            onPress={()=> navigation.navigate('signup', {log:1})}>
            <Text style={[style.buttonText, {color: '#707070'}]}>
              로그인
            </Text>
          </TouchableOpacity>
        </View>
      ) : (
        <View>
          <TouchableOpacity
            style={[style.button, {backgroundColor: 'transparent'}]}
          ><Text style={style.buttonText}/></TouchableOpacity>
          <TouchableOpacity
            style={[style.button, {backgroundColor: 'transparent'}]}
            onPress={() => goToSlide(activeIndex+1, true)}
            >
            <Text style={[style.buttonText, {color: '#707070'}]}>
              다음
            </Text>
          </TouchableOpacity>
        </View>
      )}
    </SafeAreaView>
  </View>
);

};

1 Ответ

0 голосов
/ 27 мая 2020

Проблемы:

  1. Вы должны указать ссылку из своего AppIntroSlider Tag, например:
render() {
    return (
      <View style={{flex: 1}}>
        <StatusBar translucent backgroundColor="transparent" />
        <AppIntroSlider
          keyExtractor={this._keyExtractor}
          renderItem={this._renderItem}
          renderPagination={this._renderPagination}
          data={data}
          ref={(ref) => (this.slider = ref)} //Here~~~~~~~~~~~~~~~!!!!!
        />
      </View>
    );
  }
}
Чтобы вы могли позвонить goToSlide() вот так:
<TouchableOpacity
  key={i}
  style={[
    styles.dot,
    i === activeIndex
      ? {backgroundColor: 'white'}
      : {backgroundColor: 'rgba(0, 0, 0, .2)'},
  ]}
  onPress={() => this.slider.goToSlide(i, true)}  //Here~~~~~~~~!!!  From the reference
/>

DO C пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...