Реакция-родной-Swiper странное поведение
В моем приложении я использую компонент Reaction-native-swiper. Первоначально это работало должным образом, но в последнее время у него странное поведение. У этого есть 5 окон, и это сильно ударяет как это. 5-1-2-3-4-5-1
это сильно ударяет 7 раз, и предметы такие. начинается с первого. Я могу провести пальцем влево один раз. Проведите вправо 5 раз. Это все.
Как я могу решить эту проблему? Я использую версию 1.5.6
import React from "react";
import { Dimensions } from "react-native";
import Swiper from "react-native-swiper";
import SwiperWindow from "../SwiperWindow/SwiperWindow";
const height = Dimensions.get("window").height * 0.3;
const swiperContainer = props => (
<Swiper height={height}
showsButtons={true}
showsPagination={false}>
{props.featuredWorkouts.map(featuredWorkout => {
return(
<SwiperWindow
key={featuredWorkout.featuredWorkoutId}
imageSource={featuredWorkout.postImage}
workoutTitle={featuredWorkout.title}
/>)
})}
</Swiper>
);
export default swiperContainer;
3 ответа
Добавить
key={allPins.length}
. внутри Swiper, как показано ниже, и это сработало для меня
<Swiperkey={allPins.length}}>
</Swiper>
allPins.length
здесь нет ничего, кроме
dynamicArray.length
.
Из этой ветки https://github.com/leecade/react-native-swiper/issues/569,
Кажется, эту проблему можно решить,
Я заметил, что если вызвать setState в родительском компоненте, componentWillReceiveProps компонента swiper сработает, а nextProps будет точно таким же, как реквизиты текущего компонента swiper. И далее вызывается setState и initState компонента swiper, поэтому состояние swiper нарушается.
Я временно добавил if (nextProps.index === this.props.index) return; в componentWillReceiveProps, чтобы решить эту проблему.
и это решение предоставляется HuiSF в этой теме.
loop={false} will solve this as i had the same issue
есть ошибка в компоненте swiper при установке цикла в true, так как у меня должна быть опора "начальный слайд"