react-native - 为什么我的 FlatList 没有显示?
问题描述
我正在尝试加载此 FlatList,但它没有在屏幕上显示任何内容,也没有出现错误。品种 console.log 正在记录一个带有 $t 键的对象数组。
import React, { Component } from 'react';
import { FlatList, Text, View } from 'react-native';
import { connect } from 'react-redux';
import { Container, Content } from 'native-base';
// import BreedListItem from './BreedListItem';
class BreedList extends Component {
render() {
console.log(this.props.breeds.breed);
return (
<Container>
<Content>
<FlatList
style={{ flex: 1 }}
dataSource={this.props.breeds.breed}
renderItem={(breed) => {
console.log(breed.$t);
return (
<View><Text>{breed.$t}</Text></View>
);
}
}
keyExtractor={(breed) => `${breed.$t}`}
/>
</Content>
</Container>
);
}
}
const mapStateToProps = (state) => {
return {
breeds: state.breeds.breeds
};
};
export default connect(mapStateToProps)(BreedList);
this.props.breeds.breed 的控制台日志如下。
(37) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0
:
{$t: "Affenpinscher"}
1
:
{$t: "Afghan Hound"}
2
:
{$t: "Airedale Terrier"}
...
解决方案
如果您忘记从 renderItem 函数返回某些内容,也会发生这种情况。例如:
renderItem = (row, sectID, rowID) => {
<View style={{flexDirection: 'row'}}>
<Text>{row.item}</Text>
</View>;
};
如您所见,缺少 return 语句,但这不会触发错误、警告或任何事情——您只会得到一个空白的 Flatlist。
推荐阅读
- reactjs - TypeError:无法读取未定义 ReactJS 的属性“推送”
- java - 为什么尽管 if 语句为真,但仍在执行 else 语句?
- electron - 电子快速启动、ipcMain、CSP 在 Javascript 中阻止“评估”
- python - 如何在 python selenium 中使用 iframe?
- java - 添加到 Spring 项目的 HikariCP 出现错误
- sql - 如何使用具有唯一 ID 的数百条记录更新现有表
- algorithm - 算法打印电话键盘的数字排列
- linux - 我怎样才能完成这个?
- autodesk-forge - FORGE Viewer 性能和大文件的错误问题
- amazon-s3 - 将文件从在线共享点上传到 aws s3 存储桶