在平面列表中渲染许多图像时,如何将包含图像位置的道具传递给图像源?

Posted

技术标签:

【中文标题】在平面列表中渲染许多图像时,如何将包含图像位置的道具传递给图像源?【英文标题】:How do I pass a prop that contains the image location to image source when rendering many images in a flatlist? 【发布时间】:2021-12-07 16:20:14 【问题描述】:

我下面的代码接受inputPhotoLocation 作为道具。 inputPhotoLocation 包含图像源位置列表(已从包含列表的文件中检索到)。我需要一种方法将这些传递给我的图像源。我已经能够成功地直接在文本框中传递位置。

function SelectionBoxComponent(inputPhotoLocation, inputText, onPress) 
    return (

        <TouchableWithoutFeedback onPress=onPress>
            <View style=styles.box>
                <View style=styles.circularPhoto>
                    <Image style=height:"100%", width:"100%", borderRadius:70,
                        borderWidth:0, source=require(inputPhotoLocation) ></Image> /* Here I need to insert the list items */
                </View>

                <AppText style=styles.textStyle onPress=console.log(inputText) >
                    inputText</AppText>

            </View>
        </TouchableWithoutFeedback>

我的 inputPhotoLocation 道具包含这个:

./assets/GroupImages/football.jpg

../assets/GroupImages/valley.jpg

../assets/GroupImages/usa.jpg

../assets/GroupImages/playstation.jpg

../assets/GroupImages/pc.jpg

我能够成功地将这些位置作为文本输出传递。但是,我不知道如何在图像源中传递这些。

【问题讨论】:

【参考方案1】:
      <Image
        style=
          height: '100%',
          width: '100%',
          borderRadius: 70,
          borderWidth: 0,
          /* The source prop is not a style prop */
          source=require(inputPhotoLocation)
        ></Image>



      <Image
        /* The source prop is Image prop */
        source=require(inputPhotoLocation)
        style=
          height: '100%',
          width: '100%',
          borderRadius: 70,
          borderWidth: 0
        ></Image>

【讨论】:

谢谢,成功了! 这似乎是不平衡的 - 每个块都有一个额外的“”(也由奇怪的语法突出显示)。 require(inputPhotoLocation) 不应该是 require(inputPhotoLocation) (末尾有一个额外的“”)? (这应该独立于comment character sequence requirements。) 明确地说,主要关注的是此 Stack Overflow 页面上的语法突出显示。要么修复代码,要么关闭语法高亮(例如使用code fence ``lang-none ... ```)。 这里的示例代码有效吗? 是的,低码有效。我发布了这两个变体以明确什么是错误的以及哪一行导致了问题。

以上是关于在平面列表中渲染许多图像时,如何将包含图像位置的道具传递给图像源?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 中动态导入图像?

状态变化时如何防止 FlatList 重新渲染

如何将Listview数据裁剪到android中的滚动位置?

如何在触摸时旋转图像并将图像拖动到另一个图像上

[R中具有渲染图像的3D图[关闭]

如何将包含 HTML 的字符串渲染到 C# 中的图像中?