Нарушение инварианта: Слушатель не поддерживается для событий, управляемых родной системой на карусели 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.