【发布时间】:2020-07-17 12:37:56
【问题描述】:
您好,我正在尝试渲染我使用 onClick 函数制作的 PostOnWall 组件。目标是每次有人单击按钮时,handleClick 都会在屏幕上呈现一个新组件。因此,如果我三次单击该按钮,我应该会在我的屏幕上看到三个 PostOnWall 组件。请告诉我我做错了什么。
class Textbox extends Component {
constructor(props) {
super(props);
this.handleClick.bind(this);
this.state = {
textArea: "",
text: "",
show: false,
curTime : new Date().toLocaleString(),
};
}
handleChange(event) {
const myValue = event.target.value;
this.setState({
textArea: myValue
})
console.log(this.state)
}
handleClick= () => {
this.setState({text:this.state.textArea,
show: !this.state.show});
return (
<div>
{this.state.show && <PostOnWall PostOnWall={this.props.PostOnWall} text={this.state.text} time={this.state.curTime}/>}
</div>
);
}
showNewPost
render() {
return (
<div>
<textarea className="Textbox"
rows="2" cols="30"
type = "text"
onChange={this.handleChange.bind(this)}
value={this.state.textArea} >
</textarea>
<button className="postbutton" onClick={this.handleClick.bind(this)}>Post</button>
</div>
);
}
}
export default Textbox;
【问题讨论】:
-
从
onClick处理程序返回组件将什么也不做。您需要在 render 方法中添加PostOnWall组件。您可以在本地状态下创建一个数组,每次单击按钮时都会向该状态添加一个组件,然后在 render 方法中渲染该组件数组
标签: reactjs