使用来自aws-amplify-react-native的S3Image

时间:2019-09-19 03:46:44

标签: reactjs react-native amazon-s3 expo aws-amplify

我正在使用React Native / Expo构建一个应用程序。我已经设置了AWS S3,并且使用withAuthenticator通过用户登录进行了认知。我的图像上传正常,但是当我尝试显示图像时却无法正常工作。这是我正在使用的代码:

const ImageList = ({ 
  imageId,
  getImages,
  images = [],
}) => {
  useEffect(() => {
    getImages(imageId);
  }, []);

  return (
    <View>
      <Card title="Images">
        {images.map((value, idx) => (
          <S3Image imgKey={value.key} level="private" />
        ))}
      </Card>
    </View>
  );
}

我的getImages函数(redux action)使用Storage.list获取S3存储桶中的图像列表。它返回值很好。但是S3Images组件未呈现任何内容。我也尝试过仅使用Storage.get从S3获取URL,然后从react-native使用Image,但这也不起作用。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您需要在样式道具中为S3Image组件添加宽度和高度。如果width或height为0,则该组件不显示。

<S3Image imgKey={value.key} level="private" style={{ width: 100, height: 100 }}/>