尽管绑定,onClick没有工作reactjs按钮

问题描述 投票:0回答:2

我在我的Reactjs代码中创建了一个新组件,并在那里有一个带有onClick函数的按钮。但onClick功能不起作用。我尝试了一切,但它仍然无效。我有什么想法可以解决这个问题吗?

import React, { Component } from 'react';
import MenuIcon from '@material-ui/icons/Menu';

class HeaderComponent extends React.Component {
constructor(props){

    super(props);

    this.openMenuBar = this.openMenuBar.bind(this);
}

openMenuBar(){
    console.log("open");
}

render(){
    return(
        <div>
        <button onClick={() => { this.openMenuBar()}}>
                <MenuIcon/>
            </button>
        </div>
    );
}

}

然后在app.js中调用此组件

<HeaderComponent/>

UPDATE

一些有用的信息:每当我将它路由到路径(app / path / xx)时,按钮都不可点击。否则,它是否可点击(如果路径是root)

reactjs button buttonclick
2个回答
1
投票

语法应该是

onClick={this.openMenuBar}

要么

onClick={() => { return this.openMenuBar()}}

要么

onClick={() => this.openMenuBar() }

class MenuIcon extends React.Component {
  render(){
    return <i className="fas fa-plus" />
  }
}
class HeaderComponent extends React.Component {
    constructor(props){
      super(props);
      this.openMenuBar = this.openMenuBar.bind(this);
    }
     
    openMenuBar(){
      console.log("open");
    }

    render(){
      return(
          <div>
            
            <button onClick={this.openMenuBar}> <MenuIcon /></button>
            <button onClick={() => this.openMenuBar()}> btn2</button>
            <button onClick={() => { return this.openMenuBar()}}> btn3</button>
            
          </div>
    );
}
}
ReactDOM.render(<HeaderComponent />, document.getElementById('root'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">

<div id="root"></div>

0
投票

尝试

openmenubar = () => {

...

}

<button onClick = { () => this.openmenubar() } > </button>
© www.soinside.com 2019 - 2024. All rights reserved.