ReactJs toggle Button to open Menu

Viewed 29818

I built a React component, Toggle Menu, which gets triggered by a button. I'm not able to see the menu open/close after the initial open. A bit lost on how to get started to fix this issue... This is the example I used for reference How to Build a Sliding Menu Using ReactJS

export default class ToggleMenu extends React.Component {

  showRight = () => {
    this.right.show();
  }


  constructor(props) {
    super(props);
    this.showRight = this.showRight.bind(this);
  }

  render() {

    return (
      <div>
        <button onClick={this.showRight}>Show Right Menu!</button>
        <Menu ref={right => this.right = right} alignment="right">
        <MenuItem hash="first-page">First Page</MenuItem>
        <MenuItem hash="second-page">Second Page</MenuItem>
        <MenuItem hash="third-page">Third Page</MenuItem>
      </Menu>
      </div>
    );
  }
}


export default class Menu extends React.Component {
    state = {
      visible: false,
    };

    show() {
      this.setState({ visible: true });
    }

    hide() {
      this.setState({ visible: false });
    }

    render() {
      const { visible } = this.state;

      return (
        <div className="menu">
          {
            visible &&
              <div className={this.props.alignment}>{this.props.children}</div>
          }
        </div>
      );
    }
}
4 Answers
class App extends React.Component {
  state = {
    messageVisibility: true
  }  

  toggleMessage = () => {
    this.setState({
      messageVisibility: !this.state.messageVisibility
    })
  }

  render() {
    return(
      <div>           
        <button onClick={this.toggleMessage}>Toggle Message</button>
        {this.state.messageVisibility ? <p>Toggle Content</p> : null}        
      </div>
    )
  }

}
Related