Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是意外的象征,期待;你的意思是什么?_Javascript_Reactjs - Fatal编程技术网

Javascript 什么是意外的象征,期待;你的意思是什么?

Javascript 什么是意外的象征,期待;你的意思是什么?,javascript,reactjs,Javascript,Reactjs,需要协助操作手机和桌面的导航菜单,但收到错误消息。当您收到这样的错误消息时,这意味着什么?如果再次遇到,我该如何修复它 第20:21行:分析错误:意外标记,应为“;” 完整代码: class Navigation extends React.Component { constructor(props) { super(props); this.state = { show: false } th

需要协助操作手机和桌面的导航菜单,但收到错误消息。当您收到这样的错误消息时,这意味着什么?如果再次遇到,我该如何修复它

第20:21行:分析错误:意外标记,应为“;”

完整代码:

class Navigation extends React.Component {

    constructor(props) {
        super(props);

        this.state = {
            show: false
        }

        this.toggleShow = this.toggleShow.bind(this);
        this.hide = this.hide.bind(this);

        toggleShow(){
            this.setState({show: !this.state.show});
        }

        hide(e){
            if(e && e.relatedTarget){
              e.relatedTarget.click();
            }
        this.setState({show: false});
    }
完整代码

render() {
      return (
          <Router>
              <div className="FlexContainer NavbarContainer">

                  <div className="mobilecontainer LeftNav">
                      <h2 className="BrandName LeftNav mobileboxmenu inline">Kommonplaces</h2>
                      <div 
                      className="hamburger inlinev"  
                      onClick={this.toggleShow}  
                      onBlur={this.hide}>
                          <img alt="menubtn" src={hamburger}></img>
                      </div>
                  </div>

                  {
                        this.state.show &&
                    ( 
                        <ul className="NavBar">
                            <Dropdown/>    
                            <li className="RightNav"><Link to="/">Host Your Space</Link></li>
                            <li className="RightNav"><Link to="/">About Us</Link></li>
                            <li className="RightNav"><Link to0="/">Contact Us</Link></li>
                            <li className="RightNav"><Link to="/">Sign Up</Link></li>
                            <li className="RightNav"><Link to="/">Login</Link></li>
                        </ul>
                    )
                  }
               </div>
         </Router>
      );
    }
  }

  export default Navigation;
render(){
返回(
康蒙广场
{
这个州的节目&&
( 
  • 托管您的共享空间
  • 关于我们
  • 联系我们
  • 注册 登录
) } ); } } 导出默认导航;
问题在于,您正在使用语法在构造函数中定义类函数。要解决此问题,请使用:

class Navigation extends React.Component {

    constructor(props) {
        super(props);

        this.state = {
            show: false
        }

        this.toggleShow = this.toggleShow.bind(this);
        this.hide = this.hide.bind(this);
    }

    toggleShow(){
        this.setState({show: !this.state.show});
    }

    hide(e){
        if(e && e.relatedTarget){
            e.relatedTarget.click();
        }
        this.setState({show: false});
    }
}

在本例中,
构造函数
在定义
toggleShow
之前结束,这是一个javascript语法错误。令牌是一个字符。与反应无关

您可以查看以下关于Js类的链接: -

为了不产生错误,您的代码应该是这样的:

class Navigation extends React.Component {

    constructor(props) {
        super(props);

        this.state = {
            show: false
        }
    }
    toggleShow() {
        this.toggleShow = this.toggleShow.bind(this)
        this.hide = this.hide.bind(this)
        this.setState({ show: !this.state.show });
    }

    hide(e) {
        if (e && e.relatedTarget) {
            e.relatedTarget.click();
        }
        this.setState({ show: false });
    }
}

您只能在类的主体中而不是在其构造函数中定义这样的函数(
toggleShow(){..}
)。@Titus您是什么意思?你的意思是喜欢类名吗?那么,你是说我结束了toggleShow而没有关闭或调用它。@bpdg不,我是说你不能在
构造函数中使用该语法定义
toggleShow
,你定义它的方式只能在类体
类A{toggleShow(){..}中使用
不在构造函数内部
类A{constructor(){toggleShow(){..}}
@bpdg您可以在这里找到关于该模式的详细信息:感谢您向我解释,并给我一个阅读资源
class Navigation extends React.Component {

    constructor(props) {
        super(props);

        this.state = {
            show: false
        }
    }
    toggleShow() {
        this.toggleShow = this.toggleShow.bind(this)
        this.hide = this.hide.bind(this)
        this.setState({ show: !this.state.show });
    }

    hide(e) {
        if (e && e.relatedTarget) {
            e.relatedTarget.click();
        }
        this.setState({ show: false });
    }
}