React Native:从本地图库中选取时如何动态排列显示中的本地图像?

时间:2020-07-16 06:36:29

标签: react-native react-native-image-picker

在我的RN 0.62.2应用程序中,一个函数用于显示从图库中拾取的本地图像:

const displayImg = (img_source, width, ht, local=false) => {
        if (local) {
            return (<Image source={require(img_source)} style={{width:width, height:ht, resizeMode:'cover'}}/>); //<<<== require causes error with dynamic image source
        } else {  //online 
            return (<FastImage source={{uri:img_source}} resizeMode={FastImage.resizeMode.cover} style={{width:width, height:ht}}/>);
        };
        
    };

但是由于捆绑时图像源不可用,因此RN将require抛出error。上面功能的目的是根据所拍摄图像的数量动态安排图像显示格式。例如,对于一张图像,则显示的图像将采用全宽。如果有2张图像,则一个图像将与另一幅图像并排使用一半的宽度。由于应用程序直到用户选择了图像,才知道要显示哪个图像,因此require(image_source)在捆绑时将不知道确切的路径,这在React Native捆绑中是违反的。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您不必要求用户输入图像。

您应该将它们用作外部图像,因为react-native-image-picker将返回所选择图像的网址。

所以不是

 <Image source={require(img_source)} />

您应该:

<Image source={{uri: img_source}} />