我正在尝试制作一个页面,用以下代码呈现我在mongodb服务器上拥有的所有帖子:
constructor(props) {
super(props);
this.state = {
posts: []
}
this.listPosts = this.listPosts.bind(this);
}
componentDidmount() {
showAllPosts().then(res => {
console.log(res)
this.setState({
posts: res
})
})
console.log(this.state)
}
listPosts() {
this.state.posts.map(post =>
<listPost data={post}/>)
}
render() {
return (
<div>
<h1> All Posts </h1>
<ul class="mad-list">
{this.listPosts}
</ul>
</div>
)
}
如您所见,我在console.log()设置状态之后并在函数外部,但是第二个console.log显示了一个空数组,因此我确定我的方式有问题我以此设置状态。我读到您应该在名为that或self的函数之外创建一个变量,并将其设置为this并将其用于.setState函数,但是我尝试了一下,但仍然无法正常工作。我很确定没有帖子会阻止listPosts函数正常工作。