Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js React.JS-在`onClick`事件上调用函数会导致`this`在函数中未定义_Node.js_Reactjs_This - Fatal编程技术网

Node.js React.JS-在`onClick`事件上调用函数会导致`this`在函数中未定义

Node.js React.JS-在`onClick`事件上调用函数会导致`this`在函数中未定义,node.js,reactjs,this,Node.js,Reactjs,This,我有以下React.JS(Next.JS)代码: 导出默认类NavBar扩展React.Component{ 建造师(道具){ 超级(道具); 此.state={ 美诺朋:错 }; } render(){ 返回; } 切换菜单(){ this.setState({menuOpen:this.state.menuOpen?false:true}); } }; 但是,当单击图像并调用toggleMenu时,我会收到一个错误,提示this未定义。这是有意义的,因为函数正在被放入onClick事件中,

我有以下React.JS(Next.JS)代码:

导出默认类NavBar扩展React.Component{
建造师(道具){
超级(道具);
此.state={
美诺朋:错
};
}
render(){
返回;
}
切换菜单(){
this.setState({menuOpen:this.state.menuOpen?false:true});
}
};

但是,当单击图像并调用
toggleMenu
时,我会收到一个错误,提示
this
未定义。这是有意义的,因为函数正在被放入
onClick
事件中,但是我如何解决这个问题呢?

您需要将
这个
上下文显式绑定到您的函数,如:

this.toggleMenu.bind(此)

或者使用箭头符号重新定义
toggleMenu
函数,箭头符号隐式执行此操作:

toggleMenu = () => {
  // method body here...
}

完美的不知道arrow函数会这么做。很高兴知道。12分钟过后我会接受答案的。
toggleMenu = () => {
  // method body here...
}