2016-12-15 106 views
1

我已经使用移动版本创建了此NavBar组件。移动菜单切换按钮将页面移动到React的顶部

但是当我点击手机上的菜单/关闭按钮时,切换工作,但将页面移动到顶部。 有人有我如何可以预防的想法吗?

var MobileMenu = React.createClass({ 
     getDefaultProps: function(){ 
     return { 
      isOpen: false 
     }; 
     }, 
     openForm: function(){ 
      window.open('http://localhost:8080.com/form', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes') 
     }, 
     render: function(){ 
     if (this.props.isOpen){ 
     return (
      <div className="navMenuButtons"> 
       <NavLink to="/" className="navMenuButton">HOME</NavLink> 
       <NavLink to="/about" className="navMenuButton">ABOUT</NavLink> 
       <NavLink to="/faq" className="navMenuButton">FAQ</NavLink> 
       <div className="margin-auto"> 
       <NavLink className="navButton applyButton" onClick={this.openForm}> 
       APPLY 
       </NavLink> 
       </div> 
      </div> 
     ) 
     } 
     return null; 
     } 
    }); 
    var NavBar = React.createClass({ 
     getInitialState: function() 
      { 
       return { 
        isOpen: false 
       }; 
      }, 
      toggleMenu: function(){ 
      this.setState({isOpen: !this.state.isOpen}); 
     }, 
      openForm: function(){ 
       window.open('http://localhost:8080/form', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes') 
      }, 
     render: function(){ 
      var mobileMenuClass = this.state.isOpen ? 'navBar navBarOpen cl-effect-21' : 'navBarClose navBar cl-effect-21'; 
      var mobileButton = this.state.isOpen ? 'CLOSE' : 'MENU'; 
      return (
      <div> 
       <div className={mobileMenuClass}> 
       <a href="#" className="mobile_toggle"> 
        <div className="toggle_labels"> 
        <div onClick={this.toggleMenu}className="menu navButton">{mobileButton}</div> 
        </div> 
       </a> 
       <div className="navMenuButtons_desk"> 
       <NavLink to="/" className="navMenuButton">HOME</NavLink> 
       <NavLink to="/about" className="navMenuButton">ABOUT</NavLink> 
       <NavLink to="/faq" className="navMenuButton">FAQ</NavLink> 
       <div className="button_right"> 
        <NavLink target="_blank" className="navButton applyButton" ><div onClick={this.openForm}> 
        APPLY</div> 
        </NavLink> 
       </div> 
       </div> 
       <MobileMenu isOpen={this.state.isOpen} onToggle={this.toggleMenu} /> 
       </div> 
      </div> 
     ); 
     } 
    }); 
    var App = React.createClass({ 
     render: function(){ 
     console.log(this.props.location.pathname); 
     const location = this.props.location; 
     return (
      <div> 
      <NavBar /> 
      { this.props.children } 
      <Footer /> 
      </div> 
     ); 
     } 
    }); 

回答

0

这可能是您的锚标记而不是React的问题。尝试在href上设置javascript:void(0),或者删除#。

+0

是的!情况就是如此。谢谢! –

相关问题