【问题标题】:how to show current index of an image using package react-native-image-viewing如何使用包 react-native-image-viewing 显示图像的当前索引
【发布时间】:2022-01-11 19:00:44
【问题描述】:

所以我使用这个包https://github.com/jobtoday/react-native-image-viewing 以画廊的形式显示图像,一切都很好,但是当我为下一个滑动图像时,它并没有改变底部的索引它只是虽然我使用了这个道具功能onImageIndexChange,但保持索引不变,但下面仍然没有用是我的代码有人可以帮忙:

import ImageView from "react-native-image-viewing";


const Example = () => {
    const ImagesExamples = [
        {
            uri: 'https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg',
            page: 0
        },
        {
            uri: 'https://images.ctfassets.net/hrltx12pl8hq/61DiwECVps74bWazF88Cy9/2cc9411d050b8ca50530cf97b3e51c96/Image_Cover.jpg?fit=fill&w=480&h=270',
            page: 1
        },
        {
            uri: 'https://cdn.pixabay.com/photo/2021/08/25/20/42/field-6574455__340.jpg',
            page: 2
        },
        {
            uri: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTx5kWBc-yusySv8AFM14-CMJw07rXAhRsOnHIf5xklL2pg9f-CYF40IsxKIZP-_2bOq7o&usqp=CAU',
            page: 3
        },
        {
            uri: 'https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg',
            page: 4
        },
    ];

    const [currentImageIndex, setImageIndex] = useState(0);
    const [isVisible, setIsVisible] = useState(false);

    const handleSetIsVisible = (index) => {
        setImageIndex(index)
        setIsVisible(true)
    }

    return (
        <View style={styles.container}>
            {ImagesExamples.map((uri, index) => {
                return (
                    <View >
                        <Text>
                            {uri.page}
                        </Text>
                        <TouchableOpacity onPress={() => handleSetIsVisible(uri.page)}>
                            <Image source={{ uri: uri.uri }} style={{ width: 100, height: 100 }} />
                        </TouchableOpacity>

                    </View>
                );
            })}

            <ImageView
                images={ImagesExamples}
                imageIndex={currentImageIndex}
                presentationStyle="overFullScreen"
                visible={isVisible}
                onRequestClose={() => setIsVisible(false)}
                onImageIndexChange={() => setImageIndex(currentImageIndex)}
                FooterComponent={() => (
                    <View style={styles.root}>
                        <Text style={styles.text}>{`${currentImageIndex + 1}/${ImagesExamples.length}`}</Text>
                    </View>
                )}
            />
        </View>
    );
};

export default Example;

【问题讨论】:

    标签: javascript react-native image-gallery


    【解决方案1】:

    请试试这个

    const handleSetIsVisible = () => {
            setIsVisible(true)
        }
    
                <ImageView
                    images={ImagesExamples}
                    imageIndex={currentImageIndex}
                    presentationStyle="overFullScreen"
                    visible={isVisible}
                    onRequestClose={() => setIsVisible(false)}
                    onImageIndexChange={(index) => setImageIndex(index)} 
                    FooterComponent={() => (
                        <View style={styles.root}>
                            <Text style={styles.text}>{`${currentImageIndex + 1}/${ImagesExamples.length}`}</Text>
                        </View>
                    )}
                />
    

    【讨论】:

    • 谢谢,它起作用了,但是,我想知道它作为参数传递的索引是从哪里获取该索引的?
    • 我认为它在底层迭代了 ImagesExamples 集合并获取该集合的每个元素的索引。类似的东西,请在这里查看我的答案stackoverflow.com/a/69357644/8602069
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多