我正在学习reactJS,我遇到了定义函数和点击按钮时调用它的问题。这是我的代码:
handleClick(){
alert()
}
render(){
return(
<div><button onClick={this.handleClick}>Click Here</button></div>
)
}
我正在Uncaught TypeError: this.handleClick is not a function
答案 0 :(得分:0)
按钮onClick
的范围是按钮本身,而不是您的组件,因此按钮上不存在undefined
因为handleClick
。您需要bind
构造函数中的this
点击处理程序:
this.handleClick = this.handleClick.bind(this);
或使用箭头符号:
handleClick = () => {
console.log(' clicked!!');
}
render() {
<button onClick={this.handleClick}>Clicky!</button>
}
答案 1 :(得分:0)
处理这个问题的正确方法是将它绑定到构造函数,使其看起来像这样。
class ComponentName extends Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(){
alert('Do something')
}
render(){
return(
<div>
<button onClick={this.handleClick}>Click Here</button>
</div>
)
}
}