无法在 React 中找出“意外的令牌”[关闭]

Posted

技术标签:

【中文标题】无法在 React 中找出“意外的令牌”[关闭]【英文标题】:Cannot figure out "Unexpected token" in React [closed] 【发布时间】:2020-04-10 09:46:41 【问题描述】:

我无法弄清楚第 42:18 行的错误是什么意思,请有人解释一下。

错误信息:

第 42:18 行:解析错误:意外令牌

render() 
    return (
        <div className="FlexContainer NavbarContainer">
            <ul className="NavBar">
                <div className="mobilecontainer LeftNav">
                    <h2 className="BrandName LeftNav mobileboxmenu inline">Kommonplaces</h2>
                    <div className="hamburger inline" onClick=this.showDropdownMenu><img  src=hamburger></img></div>
                     this.state.displayMenu ? (
                </div> This line is 42 

                <Dropdown/>

                <li className="RightNav"><Link to="/">Host Your Space</Link></li>
                <li className="RightNav"><Link to="/">About Us</Link></li>
                <li className="RightNav FarRight"><Link to="/">Contact Us</Link></li>

                <li className="RightNav"><Link to="/">Sign Up</Link></li>
                <li className="RightNav"><Link to="/">Login</Link></li>
            </ul>
                ):
            (
          null
            )
        
       </div>

    );
  


export default MobileDropdown;

【问题讨论】:

您的 html 无效。 &lt;div&gt; 不能是 &lt;ul&gt; 的子元素。只有&lt;li&gt; 可以。 @Quentin 如何将其修复为不是我的子元素? 可能通过将其移出&lt;ul&gt; 【参考方案1】:

JSX 不是 HTML 的 strings 组合在一起并传递给浏览器的 HTML 解析器以转换为 DOM。它是在 javascript 中创建 元素 的语法。

你正试图用&lt;/div&gt; 开始一个 JSX 块,这是一个 end 标记。您首先需要一个匹配的 start 标签。

【讨论】:

我的问题是我有一个匹配的起始标签 @bpdg — 不,你没有。 &lt;/div&gt; 是 JSX 部分中的第一件事,它是三元运算符之后的第一个值【参考方案2】:

你的代码应该是:

  render() 
    return (
      <div className="FlexContainer NavbarContainer">
        <ul className="NavBar">
          <div className="mobilecontainer LeftNav">
            <h2 className="BrandName LeftNav mobileboxmenu inline">
              Kommonplaces
            </h2>
            <div className="hamburger inline" onClick=this.showDropdownMenu>
              <img  src=hamburger />
            </div>
            this.state.displayMenu ? (
              <>
                <Dropdown />

                <li className="RightNav">
                  <Link to="/">Host Your Space</Link>
                </li>
                <li className="RightNav">
                  <Link to="/">About Us</Link>
                </li>
                <li className="RightNav FarRight">
                  <Link to="/">Contact Us</Link>
                </li>

                <li className="RightNav">
                  <Link to="/">Sign Up</Link>
                </li>
                <li className="RightNav">
                  <Link to="/">Login</Link>
                </li>
              </>
            ) : null
          </div>
        </ul>
      </div>
    );
  

【讨论】:

以上是关于无法在 React 中找出“意外的令牌”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用 Create React App 开玩笑:测试套件无法运行 - 意外的令牌

“无法重新声明块范围的变量”和“SyntaxError:意外的令牌'导出'”[关闭]

节点服务器无法启动,给出意外的令牌 [关闭]

Jest 使用 react + konva 和/或 react-konva 遇到了意外的令牌

Jest 遇到了带有 react-native 的意外令牌

React - 模块解析失败:意外的令牌