添加了新的replay之后,怎样把input里的内容清空?
添加了新的replay之后,怎样把input里的内容清空?
添加了新的replay之后,怎样把input里的内容清空?
 
                            2018-09-18
刚问完发现是老师留的作业……那我就自问自答一下吧:
在CommentBox.js里的handleSubmit里加上一句:
this.textInput.value=""
即可
加删除按钮比较麻烦点,CommentList.js文件中,把ul标签修改如下:
<ul className="list-group mb-3">
{    
    this.props.comments.map((comment, index) =>        
        <li key={index} className="list-group-item">{comment}
        <button
            type="button"
            className="btn btn-danger btn-sm"
            data-index={index}
            onClick={this.clickHandler}
         >
         删除
         </button>
         </li>
     )
}
</ul>同时加入clickHandler方法
clickHandler(e) {
    this.props.onDeleteComment(e)
}最后,在App.js里,首先把CommentList标签加入onDeleteComment属性
<CommentList comments={comments} onDeleteComment={this.deleteComment} />再加入deleteComment方法:
deleteComment(e) {
    const index = e.target.getAttribute("data-index");
    let newComments = this.state.comments
    newComments.splice(index, 1)
    this.setState({
        comments: newComments
    })
}我在删除按钮上加了一个data-index属性用来传递comment的index,不确定好不好,也不知道有没有更好的方法。欢迎大家讨论,也请老师指点。
举报