【发布时间】:2019-06-26 14:07:53
【问题描述】:
我正在尝试使用 react-virtualized 呈现卡片列表。此特定组件上的帖子数据作为来自父组件的 prop 传递。这是我目前在我的组件类中拥有的。
state = {
listHeight: 1000,
listRowHeight: 800,
listRowWidth: 1000,
rowCount: 10
}
rowRenderer ({ index, key, style, posts }) {
if (!posts) {
return <div></div>
} else {
return (
<PostItem key={key} style={style} post={posts[index]}/>
);
}
}
render() {
return (
<div className="ui container">
<div id="postListContainer" className="ui relaxed list">
<List
width={this.state.listRowWidth}
height={this.state.listHeight}
rowHeight={this.state.listRowHeight}
rowRenderer={this.rowRenderer}
rowCount={this.state.rowCount}
posts={this.props.posts}
/>
</div>
</div>
);
}
}
我对 rowCount 进行了硬编码,因为我知道我的帖子数组中目前有 10 个项目。只是为了上下文,这是我成功呈现整个列表的原始代码。
renderPosts() {
return this.props.posts.map(post => {
return (
<PostItem key={post._id} post={post}/>
);
})
}
render() {
return (
<div className="ui container">
<div id="postListContainer" className="ui relaxed list">
{this.renderPosts()}
</div>
</div>
);
}
}
我目前遇到的问题是我无法访问从我的 rowRenderer 函数传递到此组件的道具,因此它给了我一个未定义的错误。所以我的问题是,如何访问 rowRenderer 函数中的帖子道具?我只是想为 posts prop 数组中的每个帖子返回一个 PostItem 组件。
【问题讨论】: