将一些代码从react.createclass移动到扩展Component i遇到了问题。在映射组件时,我将一个函数作为属性传递,因此可以从该组件访问它。它找到了以前的方式'但现在它抛出了这个错误: 未捕获的TypeError:无法读取属性' removeComment'未定义的
最初我认为它只需要绑定但是使用以下代码我仍然会收到错误:(注意:它仅在Comment组件中失败 - CommentForm中的类似代码按预期工作)
all(value, index) {
return <Comment author={value.author} key={index} removeComment={this.removeComment.bind(this)} >{value.comment}</Comment>
}
render() {
return(
<div>
{this.state.items.map(this.all)}
<CommentForm getNewComment = {this.getNewComment.bind(this)} />
</div>
);
}
我也尝试在构造函数方法
中绑定它由于
答案 0 :(得分:0)
all(value, index) {
return <Comment author={value.author} key={index} removeComment={this.removeComment.bind(this)} >{value.comment}</Comment>
}
render() {
return(
<div>
{this.state.items.map(this.all.bind(this))}
<CommentForm getNewComment = {this.getNewComment.bind(this)} />
</div>
);
}
当你运行地图时,你需要绑定处理程序,因为map在其他范围内运行处理程序,它将改变this
的上下文。