You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native:FlatList渲染网络数组图片报错,如何正确调用?

解决FlatList中渲染网络图片的错误问题

错误原因

React Native的require()只能接收静态字符串路径,用来加载本地项目内的图片资源——打包工具会提前扫描这些静态路径并完成资源打包。而你从API获取的是网络图片的完整URL,既不需要用require,也不能用require动态传入变量(这就是报错的直接原因)。

正确写法

直接将网络URL作为uri传入Image的source属性即可:

<FlatList
    style={styles.flatView}
    data={data}
    keyExtractor={(item)=>item.id}
    numColumns={2}
    columnWrapperStyle={styles.flatRow}
    renderItem={({item})=>(
        <View style={styles.itemView}>
           <Image style={styles.image} source={{ uri: item.image }} />
           <View>
                <Text style={styles.title}>{item.title}</Text>
                <Text style={styles.harga}>{item.price}</Text>
                <Text style={styles.type}>{item.category}</Text>
           </View>
        </View>
    )}
>
</FlatList>

补充说明

如果后续需要加载本地图片,必须确保require的参数是静态字符串,示例如下:

// 正确写法
<Image source={require('./assets/image.png')} />

// 错误写法(动态变量无法被打包工具识别)
const imgPath = './assets/image.png';
<Image source={require(imgPath)} />

内容的提问来源于stack exchange,提问作者Ekatama Ilham Prayoga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:55:17