我有以下React.JS(Next.JS)代码:
export default class NavBar extends React.Component {
constructor(props) {
super(props);
this.state = {
menuOpen: false
};
}
render() {
return <img id="menu-button" src="/static/menu.svg" onClick={this.toggleMenu}></img>;
}
toggleMenu() {
this.setState({ menuOpen: this.state.menuOpen ? false : true });
}
};
但是,单击图像并调用toggleMenu
时,我收到一条错误消息,指出this
未定义。这是有道理的,因为该函数已放入onClick
事件中,但是我该如何解决呢?
答案 0 :(得分:3)
您需要将this
上下文明确绑定到函数,例如:
this.toggleMenu.bind(this)
或使用箭头符号重新定义您的toggleMenu
函数,它会隐式地执行此操作:
toggleMenu = () => {
// method body here...
}