【发布时间】:2021-12-18 11:29:17
【问题描述】:
我正在使用react-native-pager-view 并尝试在我的索引更改上使用setPage,但它不适用于iOS 设备。流程是这样的,我尝试将索引作为道具传递给我的自定义ViewPager,并且我正在使用UseEffect 为我的 ViewPager 设置页面,这在 iOS 上不起作用,我不知道为什么。
// @flow
import React, { useEffect, useRef } from 'react';
import { StyleSheet, View, I18nManager } from 'react-native';
import PagerView, { PagerViewOnPageSelectedEvent } from 'react-native-pager-view';
type Props = {
children: React$Node,
index: number,
onIndexChange: (index: number) => void,
};
const MyViewPager = ({ children, index, onIndexChange }: Props) => {
const viewPagerRef = useRef<PagerView>(null);
useEffect(() => {
viewPagerRef.current?.setPage(index);
}, [index]);
const onPageSelect = (e: PagerViewOnPageSelectedEvent) => {
onIndexChange(e.nativeEvent.position);
};
return (
<View style={styles.container}>
<PagerView
ref={viewPagerRef}
style={styles.container}
initialPage={index}
orientation="horizontal"
onPageSelected={onPageSelect}
>
{children}
</PagerView>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
},
});
export default MyViewPager;
【问题讨论】:
标签: ios react-native react-native-pager-view