如何解决为什么我不能在.map函数的返回主体中传递函数
我正在尝试学习如何在React中进行编码,并且正在遵循教程。我遇到了一个问题(我用另一种方法解决了),但是想知道它是如何工作的。
在我的render(){}方法之前,我具有以下功能:
onDeleteHandler = () => {
axios.delete('my_firebase_link'+this.props.obj.id+'.json')
.then(console.log('Deleted'))
.catch(err => console.log(err))
}
在渲染方法中,我尝试动态创建表行
render() {
let tabRow = <p>Hello</p>;
if(this.state.businesses){
tabRow = this.state.businesses.map(function(object,i){
return <TableRow obj={object} key={i} onDelete={this.onDeleteHandler}/>;
});
} return();
但是,当我尝试运行该代码时,出现以下错误: TypeError:无法读取未定义的属性'onDeleteHandler'
在搜索了一些教程之后,我得到了下面的代码,它们完美
render() {
let tabRow = <p>Hello</p>;
if(this.state.businesses){
tabRow = this.state.businesses.map(element =>(
<TableRow obj={element} key={element.id} onDelete={(id) => this.onDeleteHandler(element.id)}/>
))
} return();
我想知道最后一个解决方案为何起作用,为什么当我在地图中使用“ function()”方法时会产生错误。
对不起,如果我的解释可能会造成混淆,但是如果我的解释不完整,我会给出任何代码。
非常感谢您!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。