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

安装react-native-gridview后出现ListView已移除错误,未使用ListView求助

解决react-native-gridview触发ListView已移除的错误

这个问题其实很好理解——你虽然没直接写ListView代码,但你用的react-native-gridview这个库内部是基于React Native已经废弃并移除的ListView组件实现的,所以当你运行代码时,库的底层调用了已经不存在的ListView,就触发了这个错误。

React Native在较新的版本(大概从0.60开始)就正式移除了ListView,官方推荐用FlatList或SectionList来替代列表类需求,包括网格布局。这里给你两个可行的解决方案:

方案一:改用官方FlatList实现网格布局

FlatList本身支持numColumns属性来设置每行的列数,完全可以替代GridView的功能,而且是官方维护的组件,不会有兼容性问题。把你原来的GridView代码改成下面这样就行:

<FlatList
  data={this.state.dataList}
  numColumns={2} // 对应原来的itemsPerRow属性
  renderItem={({ item }) => (
    <View style={{ flex: 1, backgroundColor: '#8F8', borderWidth: 1, margin: 8 }}>
      <Image style={styles.imageThumbnail} source={{ uri: item.path }} />
    </View>
  )}
  keyExtractor={(item, index) => index.toString()} // 必须添加,避免React的key警告
/>

方案二:使用维护活跃的第三方网格库

如果你还是想用封装好的网格组件,可以选择像react-native-super-grid这类基于FlatList实现的库,它不会依赖老旧的ListView,兼容性更好。安装后用法和你原来的GridView类似,能快速替换。

总结一下:react-native-gridview应该是很久没有维护的老旧库了,已经跟不上React Native的版本更新,所以才会出现这种依赖已移除组件的错误,优先选择官方组件或者维护良好的第三方库是更稳妥的做法。

内容的提问来源于stack exchange,提问作者Sandip Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:41:23