【问题标题】:React-native View-pager setPage is not working on iOSReact-native View-pager setPage 在 iOS 上不起作用
【发布时间】: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


    【解决方案1】:

    @next 版本 "^6.0.0-rc.0" 对我有用

    yarn add react-native-pager-view@^6.0.0-rc.0
    

    或者如果你正在使用 npm

    npm i react-native-pager-view@^6.0.0-rc.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多