gpt4 book ai didi

javascript - render() 中的 React onClick 函数未定义

转载 作者:行者123 更新时间:2023-12-03 01:38:36 25 4
gpt4 key购买 nike

使用下面的 react 组件我收到错误:

Uncaught (in promise) TypeError: Cannot read property 'oncontactClick' of undefined
 class Contacts extends React.Component{
constructor(props, contact){
super(props);
this.state ={ contacts: [] };
this.oncontactClick = this.oncontactClick.bind(this);
}
oncontactClick(){
console.log("contact clicked");
}
render(){
var contacts = this.state.contacts;
contacts = contacts.map(function(contact, index){
return(
<div key={index} className="contactcard" onClick={this.oncontactClick}>
<div className="name">{contact.name}</div>
</div>
)
});
return(
<div id="addcontainer">
<form id="addinput">
<input type="text" ref="name" placeholder="name" required/>
</form>
<ul>{contacts}</ul>
</div>
);
}
};

但是,如果我将 onClick 放在 form“addinput” 中,它就可以正常工作。为什么会出现这种情况以及如何让它在 contactcard 中工作?我想避免使用 jQuery。

最佳答案

Array.map 有两个参数:

第一个是迭代者。

第二个是在 iteratee 中定义 this 的内容。

这应该有效:

  contacts = contacts.map(function(contact, index){
return(
<div key={index} className="contactcard" onClick={this.oncontactClick}>
<div className="name">{contact.name}</div>
</div>
)
}, this);

关于javascript - render() 中的 React onClick 函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50956949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com