我的图像元素循环在 React Native 中无法正常工作

Posted

技术标签:

【中文标题】我的图像元素循环在 React Native 中无法正常工作【英文标题】:My loop of image elements is not working as I want it to in React Native 【发布时间】:2021-03-28 16:42:40 【问题描述】:

我在另一个文件中有一个具有某些属性的对象,例如名称、年份、uri 等...(顺便说一句,我确实导入和导出了它)

我想创建一个函数来循环所有这些对象,它会显示一个粉红色圆圈的图像和每个对象的 uri(uri 存储图像),用于存在的对象数量 - 我将附上我希望它如下所示。

函数如下:

const populateSeries = () => 
for (let i in seriesList) 
        <ImageBackground style=externalStyle.circle source=require('../assets/circle.png')>
        <Image style=externalStyle.image source=seriesList[i].uri/>
        </ImageBackground>
       
   

我在下面这样称呼它:

<ScrollView>
       <View>
         populateSeries()
       </View> 
</ScrollView> 

它没有显示任何内容。我不确定如何在我的代码的显示位中放置一个循环。有人可以帮忙吗?我很肯定 uri 位可以正常工作,因为我在 &lt;View&gt; 内对其进行了测试,并且工作正常。

【问题讨论】:

【参考方案1】:

创建一个数组并将您的项目推入其中,这应该可以! :

//Top of your component
const populateSeries = [];
for (let i in seriesList) 
   populateSeries.push(<ImageBackground style=externalStyle.circle source= 
   require('../assets/circle.png')>
    <Image style=externalStyle.image source=seriesList[i].uri/>
    </ImageBackground>);
  

 //on return
<ScrollView>
   <View>
     populateSeries
   </View> 
</ScrollView> 

【讨论】:

非常感谢!在过去的 2 个小时里,我一直在挠头。这解决了它。 很高兴知道:)【参考方案2】:

您的函数应该返回组件,但我没有看到它返回任何内容。试试这个:

<ScrollView>
       <View>
         
            seriesList.map((seri) => 
               return (
                  <ImageBackground style=externalStyle.circle source=require('../assets/circle.png')>
                    <Image style=externalStyle.image source=seri.uri/>
                  </ImageBackground>
               )
            )
         
       </View> 
</ScrollView> 

【讨论】:

谢谢!第一个答案解决了它,但如果我将来有问题,我会记住这一点!【参考方案3】:

您的 populateSeries 不返回任何内容,因此您的视图不显示任何内容。

如果您想通过在数组中循环来呈现组件,请尝试使用flatList。

<ScrollView>
       <View>
         <FlatList
          data=seriesList
          renderItem=( item ) => (
            <ImageBackground style=externalStyle.circle source=               require('../assets/circle.png')>
            <Image style=externalStyle.image source=item.uri/>
            </ImageBackground>
          )
          keyExtractor=item => item.id
        />
       </View> 
</ScrollView>

【讨论】:

谢谢!第一个答案解决了它,但如果我将来有问题,我会记住这一点!

以上是关于我的图像元素循环在 React Native 中无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

React Native onPress 在使用模态时不起作用

如何在 React Native 中的循环中查找

渲染大量图像 React Native

React-native-camera 不想保存图像

如何在 iOS 上的 React Native 中的 ImageBackground 上的父视图中显示文本元素?

本地图像现在显示 React Native