【发布时间】:2019-02-09 17:29:18
【问题描述】:
我只想在 AddPost 中单击按钮时将道具从 AddPost 组件传递给 AllPosts 组件。
加上每次单击按钮时如何继续从 AddPost 中的对象“newArray”中添加新帖子的数据(帖子,标题,keyid),并且这些新数据保存在 allposts 数组中,然后显示每个帖子通过在其上应用地图功能。
我面临的问题是如何从 newObject 中的 AddPost 获取新数据并不断将其推送到 allposts 数组中?
AddPost.js
class Addpost extends Component {
constructor(props) {
super(props);
this.state = {
title : '',
post : '',
keyid : 0
}
this.handleClick = this.handleClick.bind(this);
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
this.setState({
[event.target.name] : event.target.value
})
}
handleClick() {
this.setState(prevState => ({
keyid : prevState.keyid + 1,
post : '',
title : ''
}));
console.log(this.state.keyid);
}
render() {
return(
<div>
<input type="text" name="title" value={this.state.title} onChange={this.handleChange} maxLength="30" placeholder="Title here" />
<input type="text" name="post" value={this.state.post} onChange={this.handleChange} maxLength="200" placeholder="Post here" />
<input type="button" onClick={this.handleClick} value="Add Post" />
<Allposts post={this.state.post} title={this.state.title} keyid={this.state.keyid} />
</div>
)
}
}
AllPosts.js
class Allposts extends Component {
constructor(props) {
super();
this.state = {
newObject : {
post : '',
title : '',
keyid : ''
},
allPosts : []
}
}
render() {
return (
this.state.allPosts.map((post) =><div>
{ post.post}{post.title}{post.keyid}
</div>
)
)
}
}
【问题讨论】:
标签: reactjs