Проблема с компиляцией ReactJs: ошибка в App.js Неожиданный токен

avatar
Vagner Bellacosa
8 августа 2021 в 20:10
61
1
0

Я следовал следующей командной строке.

npx create-react-app github-first-app

npm install --save react-tabs

npm i styled-components

npm install git-state --save

со следующими файлами кода

App.js

import React from "react";
import Layout from "./components/layout";
import NoSearch from "./components/no-search";
import Profile from "./components/profile";
import Repositories from "./components/repositories";
import useGithub from "./hooks/github-hooks";

const App = () => {
  const { githubState } = useGithub();
  return (
    <Layout>
      {githubState.hasUser ? (
        <>
          {githubState.loading ? (
            <p>Loading</p>
          ) : (
            <>
              <Profile />
              <Repositories />
            </>
          )}
        </>
      ) : (
        <NoSearch />
      )}
    </Layout>
  );
};

export default App;

и Index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta
      name="description"
      content="Web site created using create-react-app"
    />
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <!--
      manifest.json provides metadata used when your web app is installed on a
      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
    -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <!--
      Notice the use of %PUBLIC_URL% in the tags above.
      It will be replaced with the URL of the `public` folder during the build.
      Only files inside the `public` folder can be referenced from the HTML.

      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
      work correctly both with client-side routing and a non-root public URL.
      Learn how to configure a non-root public URL by running `npm run build`.
    -->
    <title>Github Interface</title>
    <link rel="preconnect" href="https://fonts.gstatic.com" />
    <link
      href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
      rel="stylesheet"
    />
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>

но

npm start

полный сбой с сообщением, которое совсем не помогает новичку.

Ошибка компиляции.

./src/App.js Ошибка синтаксиса: C:/Workspace/bootcamps/022_CriandoUmFrontEndTotalmenteComponentizadoNaPraticaComReactJS/github- first-app/src/App.js: неожиданный токен (13:9)

Не могли бы вы сказать мне, где я ошибаюсь?

Источник
evolutionxbox
8 августа 2021 в 20:13
2

Что произойдет, если вы замените <> на <React.Fragment>? (кстати, я не думаю, что --save больше не нужен)

Robin Zigmond
8 августа 2021 в 20:15
0

Я не уверен, почему, но я обнаружил, что сокращение фрагмента <> не всегда распознается. Вместо этого попробуйте <React.Fragment> и то же самое, конечно, для закрывающего тега. (Строка 13 — это тег <>, вот как я это подозреваю.)

Ответы (1)

avatar
Sunny
8 августа 2021 в 20:34
1

Согласно документации React, поддержка фрагментов JSX доступна в Babel v7.0.0-beta.31 и выше!

Ссылка на документы

Используйте <React.Fragment> вместо