Chr*_*amp 3 javascript ecmascript-6 reactjs react-router
我只是在我的 React 应用程序中做一些基本的路由,我之前已经这样做了,所以我很困惑为什么它现在不起作用。
我得到的错误说: 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
Run Code Online (Sandbox Code Playgroud)
您需要为 react-router 设置上下文提供程序
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>
)
}
Run Code Online (Sandbox Code Playgroud)
旁注 -BrowserRouter应该放在您的应用程序的顶层,并且只有一个孩子。
| 归档时间: |
|
| 查看次数: |
6088 次 |
| 最近记录: |