React Router Error: вы не должны использовать Route за пределами Router - PullRequest
0 голосов
/ 26 мая 2018

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

Ошибка, которую я получаю, говорит: You should not use <Route> or withRouter() outside a <Router>

Я уверен, что это очень просто, так что спасибо за то, что вы со мной!

import React from 'react'
import { Route } from 'react-router-dom'
import { Link } from 'react-router-dom'
import * as BooksAPI from './BooksAPI'
import BookList from './BookList'
import './App.css'

class BooksApp extends React.Component {
  state = {
    books: []
  }

  componentDidMount() {
    this.getBooks()
  }

  getBooks = () => {
    BooksAPI.getAll().then(data => {
      this.setState({
        books: data
      })
    })
  }


  render() {
    return (
      <div className="App">
        <Route exact path="/" render={() => (
          <BookList
            books={this.state.books}
          />
        )}/>
      </div>
    )
  }
}

export default BooksApp

1 Ответ

0 голосов
/ 26 мая 2018

Вам необходимо настроить провайдер контекста для реакции-маршрутизатора

  import { BrowserRouter, Route, Link } from 'react-router-dom';

  // ....

  render() {
    return (
      <BrowserRouter>
        <div className="App">
          <Route exact path="/" render={() => (
            <BookList
              books={this.state.books}
            />
          )}/>
        </div>
      </BrowserRouter>
    )
  }

Примечание: BrowserRouter должен располагаться на верхнем уровне вашего приложения и иметь только одного дочернего элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...