我正在尝试通过连接到内部JSON文件来呈现平面列表。单位列表似乎正在呈现,但未显示任何文本。代码中的卡片清单被渲染9次,JSON文件中有9个对象。但是没有文字显示。
// libraryList.js
import React, { Component } from 'react';
import { FlatList } from 'react-native';
import { connect } from 'react-redux';
import ListItem from './ListItem';
class LibraryList extends Component {
renderItem(library) {
return <ListItem library={library} />;
}
render() {
// console.log(this.props);
// return;
return (
<FlatList
data={this.props.libraries}
renderItem={this.renderItem}
keyExtractor={library => library.id}
/>
);
}
}
const mapStateToProps = state => {
return { libraries: state.libraries };
};
export default connect(mapStateToProps)(LibraryList);
// ListItem.js
import React, { Component } from 'react';
import { Text } from 'react-native';
import { CardSection } from './common';
class ListItem extends Component {
render() {
return (
<CardSection>
<Text>{this.props.library.title}</Text>
</CardSection>
);
}
}
export default ListItem;
import React, { Component } from 'react';
import { Text } from 'react-native';
import { CardSection } from './common';
class ListItem extends Component {
render() {
return (
<CardSection>
<Text>{this.props.library.title}</Text>
</CardSection>
);
}
}
export default ListItem;
在此阶段只想列出标题即可。
答案 0 :(得分:1)
您需要修改renderItem
,因为FlatList
将对象传递到renderItem
回调函数中。
请使用以下内容
renderItem = ({ item }) => <ListItem library={item} />
答案 1 :(得分:0)
感谢Dan,您把我放在正确的位置。我用
renderItem = {({{item})=> this.renderItem(item)}