Babel.js 如何解决nextJS项目中的意外令牌错误?

ulmd4ohb  于 2022-12-08  发布在  Babel
关注(0)|答案(2)|浏览(132)

我建立了一个新的“next.js”项目,并希望开始编码,但我现在被下面的错误消息困了几个小时。
我已经采取了一个参考代码开始如下-

import styled from "styled-components";

function Sidebar() {
    return {

        <Container> 
            <h1> Sidebar </h1>
        </Container>

    }
}

export default sidebar;

const Container = styled.div;

这是错误:

x Unexpected token `< (jsx tag start)`. Expected identifier, string literal, numeric literal or [ for the computed key   
   ,----
 7 | <Container>
   : ^
   `----

当然,我做了我的谷歌研究,并在不同的配置文件修补。有很多不同的解决方案,但没有一个适合我(到目前为止)。我的猜测是,这与babel配置有关。但我在黑暗中摸索。
我的.babelrc文件:

{
  "presets": ["env"],
  "plugins": [
    ["transform-replace-object-assign", { "moduleSpecifier": "object.assign" }],
    "transform-object-rest-spread",
    // "@babel/plugin-proposal-nullish-coalescing-operator", // TODO: update to babel 7
  ],
}

看看这方面的指导。

t9aqgxwy

t9aqgxwy1#

您必须在return陈述式中使用()大括号。

return (
  <Container>
    <h1> Sidebar </h1>
  </Container>
);
q8l4jmvw

q8l4jmvw2#

返回JSX表达式时,必须使用括号(而不是大括号)包含JSX。

function Sidebar() {
  return (
    <Container> 
      <h1> Sidebar </h1>
    </Container>
  );
}

更多关于return表达式中括号的重要性的阅读:https://hashnode.com/post/why-some-returns-in-react-use-round-brackets-while-some-use-curly-brackets-cjgjul2r7002xwcs222e4hp2s

相关问题