javascript - 如何在reactjs中返回到之前的状态?

标签 javascript reactjs frontend

我创建了一个侧边栏组件,并将其状态设置为 false 以隐藏该 block ,直到用户单击汉堡包图标,然后显示状态。但是,当用户单击关闭“X”图标时,我尝试返回(或关闭侧边栏菜单)。我编写了一个 hideMenu 方法来将状态返回为 false,但是它不起作用,并且没有错误。 这是我写的

class SubMainNavbar extends React.Component{
  constructor(){
    super();
    this.state = {isShown:false}
    this.showMenu = this.showMenu.bind(this)
    this.hideMenu = this.hideMenu.bind(this)
  }

  showMenu(){
    this.setState({isShown: true})
  }

  hideMenu(){
   this.setState({isShown: false})
  }
  render() {
    return (
      <div className="sub-flex-container">
        <div className="co pt-4">
      <ul className="flex-container sub-list">
        <li>women</li>
        <li>mens</li>
        <li>health & beauty</li>
      </ul>
      <span onClick={this.showMenu} className="pl-3 hamburger hide-big pb-4"><Icon type="menu" />
      <div className="mobile-menu-display" id="mySidebar" style={{display: this.state.isShown ? 'block' : 'none' }}>
        <span onClick={this.hideMenu} className="float-right font-weight-bold hide-big close">X</span>
      </div>
      </span>

    </div> 

    <div className="co">
    {/* <a href=""><Logo className="logo" /></a> */}
    <a href=""><img className="img-fluid logo" src={Logo} alt="losode logo"/></a>
    </div>

    <div className="co pt-4">
    <span className="hide-small"><SearchInput /></span>
    <div className="icon-mobile hide-big">
      <ul className="flex-icon sub-flex-container">
        <li><ion-icon name="search-outline"></ion-icon></li>
        <li><ion-icon name="person-outline"></ion-icon></li>
      <li><ion-icon name="basket-outline"></ion-icon></li>
      </ul>
    </div> 
    </div>

    </div>
    );
  }
};

export default SubMainNavbar

最佳答案

您没有正确关闭标签。按如下方式更新您的代码:

  <div className="sub-flex-container">
        <div className="co pt-4">
      <ul className="flex-container sub-list">
        <li>women</li>
        <li>mens</li>
        <li>health & beauty</li>
      </ul>
      <span onClick={this.showMenu} className="pl-3 hamburger hide-big pb-4"><Icon type="menu" /></span>
      <div className="mobile-menu-display" id="mySidebar" style={{display: this.state.isShown ? 'block' : 'none' }}>
        <span onClick={this.hideMenu} className="float-right font-weight-bold hide-big close">X</span>
      </div>
      </div>


    <div className="co">
...

关于javascript - 如何在reactjs中返回到之前的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60297690/

相关文章:

reactjs - useRef 和 useEffect 初始访问,然后使用 useRef

javascript - redux react 错误 : Actions must be plain objects

javascript - 当我的状态改变时,我的 ReactJS 初始状态也会改变

javascript - HTML 编辑器和从 Word 粘贴图像

javascript - React Router - CSS 样式使用参数中断? - 状态 304 未修改?

javascript - 在中间列悬停时显示 HTML 表侧列

javascript - 您如何重构并使 React 不那么笨重且更具可读性?

javascript,带有if else的div按钮

javascript - javascript 可以实现 get 请求吗?

javascript - CSRF 403 禁止 - 无效的 CSRF token