在我的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捆绑中是违反的。有办法解决这个问题吗?
答案 0 :(得分:1)
您不必要求用户输入图像。
您应该将它们用作外部图像,因为react-native-image-picker将返回所选择图像的网址。
所以不是
<Image source={require(img_source)} />
您应该:
<Image source={{uri: img_source}} />