Проблема маршрутизации в ReactJs

Я новичок в ReactJs. Я пытаюсь создать многостраничное приложение, но у меня возникают проблемы, связанные с маршрутизацией.

введите описание изображения здесь

Это код:

import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route} from 'react-router';

......

ReactDOM.render((
    <Router>
        <Route path="/" component={My}>
            <Route path="home" component={Home}>
               <Route path="contact" component={Contact}/>
               <Route path="about" component={About}/>
            </Route>
        </Route>

    </Router>
), document.getElementById('root'))

1 ответ

Похоже, ваш маршрутизатор React ожидает поддержку истории, которую вы не предоставили. Вот пример для Router v4, который не поддерживает вложение маршрутов, как в примере с вопросом.

import React from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter, Route, Switch } from 'react-router-dom'

  ReactDOM.render((
    <BrowserRouter>
      <div className='App'>
        <div className='Page'>
          <Switch>
              <Route exact path="/" component={1} />
              <Route path="/second-page" component={2} />
              <Route path="/third-page" component={3} />
              <Route component={ErrorPage} />
          </Switch>
        </div>
      </div>
  </BrowserRouter>
), document.getElementById('root'))

Он будет направлять ваши компоненты по их соответствующим путям или возвращать компонент ErrorPage, если не найдено ни одного маршрута.

Редактировать: на самом деле история истории бесполезна и будет игнорироваться в BrowserHistory, так как цель BrowserHistory в основном состоит в создании browserHistory.

из исходного кода:

warning(
     !this.props.history,
     '<BrowserRouter> ignores the history prop. To use a custom history, ' +
     'use `import { Router }` instead of `import { BrowserRouter as Router }`.'
)
Другие вопросы по тегам