为了账号安全,请及时绑定邮箱和手机立即绑定

怎么把commentLists中的index传递到APP.js中

commentsList.js handleDelete(index){console.log(index)this.props.delete(index);}render (){const {comments} = this.props;return (<div className="comment-list-compenent"><label>评论列表</label><ul className="list-group mb-3">{comments.map((comment, index) =><likey={index}className="list-group-item"onClick = {this.handleDelete}index = {index}>{comment}</li>)}</ul></div>)}

DeleteItem(index){

const list = [...this.state.comments];

list.splice(index, 1);

this.setState({

comments: list //如果key和值是一样的直接写一个就行了

});

}


正在回答

2 回答

这里有一个很关键的地方需要注意。子组件纯函数是没有this 的,所以通过

this.props.XXX

是无法调用的。正确的方法应该是在子组件纯函数的头部引入父组件的:函数名、参数变量,如下:

const CommentList = ({comments,onDeleteThis}) => {}

这个时候,才能在子组件的纯函数内使用:

comments,onDeleteThis


0 回复 有任何疑惑可以回复我~

你这没有把index传出去啊,可以用箭头函数

onClick={()=>{this.props.deleteComment(index)}}

App.js中

<CommentList
    comments={comments}
    deleteComment={this.deleteComment}
/>
deleteComment(index){
  let newComments=this.state.comments;
  newComments.splice(index,1);
  this.setState({
    comments:newComments
  })
}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么把commentLists中的index传递到APP.js中

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信