Нарушение инварианта: Слушатель не поддерживается для событий, управляемых родной системой на карусели Snap

Я пытался реализовать Snap Карусель с моим приложением. Но он выдает следующее предупреждение и не загружается.

Ошибка: слушатель не поддерживается для собственных событий. в инварианте (invariant.js:38) в новом AnimatedEvent (AnimatedImplementation.js:2126) в Object.event (AnimatedImplementation.js:2230) в новой карусели (Carousel.js:147) в ReactCompositeComponentWrapper._constructComponentWith6.jpgCiteComponent (ReactComponentWith6).) в ReactCompositeComponentWrapper._constructComponent (ReactCompositeComponent.js:278) в ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:190) в объекте Objectount ReactNativeBaseComponent.js:69)

Класс с каруселью выглядит следующим образом.

'use strict';

const styles = require('./Styles');
import React, {Component} from 'react';
import {
    View
} from 'react-native';

import Carousel from 'react-native-snap-carousel';

export default class CarouselCard extends Component {

    static renderItem({item, index}) {
        console.log(item);
        return item;
    }

    render() {
        return (
            <View key={this.props.cardKey}
                  style={[styles.cardContainer, {padding: 0, borderWidth: 0, marginRight: -10, marginLeft: -10}]}>
                <Carousel
                    ref={(c) => {
                        this._carousel = c;
                    }}
                    data={this.props.cardsList}
                    renderItem={CampaignCard.renderItem}
                    sliderWidth={this.props.sliderWidth}
                    itemWidth={this.props.itemWidth}
                    useScrollView={true}
                />
            </View>)
    }
}

И этот компонент используется следующим образом в родительском классе.

renderCarouselCards() {
        let topCardsList = [];

        for(let x = 0; x < this.state.campaigns.length; x++) {
            topCardsList.push(
                <CarouselCard
                    key={x}
                    cardKey={x}
                    cardsList={this.getTopCards(this.state.data[x])}
                    sliderWidth={Dimensions.get('window').width}
                    itemWidth={Dimensions.get('window').width - 20}
                />
            )
        }

        return topCardsList;
    }

//

render() {
return (
                <ScrollView
                    contentInset={{top: 0}}
                    automaticallyAdjustContentInsets={false}
                    contentContainerStyle={styles.contentContainer}>
                    {this.renderCarouselCards()}
                </ScrollView>
            )
}

Окружающая среда: Реакция: 15.3.1 Реактивная нативная: 0.37.0 Реактивная нативная карусель: 3.6.0

Целевая платформа: iOS (11.2)

Любой обходной путь для этого? Спасибо.

1 ответ

Чтобы исправить ошибку, я разветвил react-native-snap-carousel модуль npm. внутри /src/carousel/Carousel.js, Я изменился useNativeDriver Параметр в scrollEventConfig имеет значение false.

Другие вопросы по тегам