Я в недоумении: Строка 35: 9: Ошибка синтаксического анализа: ожидаемый соответствующий закрывающий тег JSX для

#reactjs #jsx #react-router-dom

#reactjs #jsx #реагировать-маршрутизатор-dom

Вопрос:

Мое сообщение об ошибке:

   Line 31:16:  Parsing error: Unterminated JSX contents

  29 |           </Route>
  30 |         </Switch>
> 31 |       </Router>
     |                ^
  32 |     );
  33 |   }
  34 | }
  

Мой код:

 import React from 'react';
import { BrowserRouter as Router,
         Switch,
         Route,
         Link
} from 'react-router-dom';

class App extends React.Component {
  render() {
    return (
      <Router>
          <nav>
          <ul>
            <li>
              <Link to="/">Home</Link>
            </li>
            <li>
              <Link to="/login">Login</Link>
            </li>
          </ul>
          </nav>
        //<Switch for Router>
        <Switch>
          <Route path="/Login">
            <Login />
          </Route>
          <Route path="/">
            <Home />
          </Route>
        </Switch>
      </Router>
    );
  }
}

import Home from './pages/Home';
import Login from './pages/Login';

export default App;
  

Это говорит о том, что я что-то не завершал, но я этого не вижу. Я прошел строку за строкой примерно 20 раз. Может быть, мне просто нужна еще одна пара глаз, или, возможно, я что-то забыл. Любая обратная связь очень ценится!

Комментарии:

1. Я думаю, что JSX не знает такого типа комментариев к вашему коду. Удалить //<Switch for Router>

Ответ №1:

 //<Switch for Router>
  

Если вы находитесь в середине JSX, это не создает комментарий. Он отображает строку с двумя косыми чертами, за которой следует открытый тег для <Switch> элемента, с реквизитами for и Router обоими true

Если вы хотите сохранить комментарий, измените его на:

 {/*<Switch for Router>*/}