由于我对 React 完全陌生,我试图将我的应用程序包装在 Router 中,但出现此错误,我将其包装在 div 中,但仍然无法工作,有人可以帮助我吗? 抱歉,如果这是无关紧要或愚蠢的问题。
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import routes from'./routes';
import {Router } from 'react-router-dom';
import history from './history';
import App from './App';
ReactDOM.render(
<Router history={history} routes={routes} >
<div>
<App/>
</div>
</Router>, document.getElementById('root'));
当我使用 1 条路线时,它可以工作,但当我使用 2 条路线时,错误就在这里
import React, { Component } from 'react';
import {BrowserRouter, Route, Switch} from 'react-router-dom';
import AddDetails from './components/AddDetails';
import ShowDetails from'./components/ShowDetails';
import NavBar from "./components/NavBar";
class App extends Component {
render() {
return (
<div >
<NavBar/>
<BrowserRouter>
<Switch>
<Route exact={true} path='/' render={() => (
<div>
<AddDetails />
</div>
)}/>
<Route exact={true} path='details' render={() => (
<div>
<ShowDetails />
</div>
)}/>
</Switch>
</BrowserRouter>
</div>
);
}
}
export default App;
最佳答案
这应该有效:
ReactDOM.render((
<Router history={history} routes={routes} >
<App/>
</Router>),
document.getElementById('root')
);
<小时/>
根据您的更新,您应该用 div 包装您的路由器,或者您可以使用 switch:
<BrowserRouter>
<div>
<Route exact={true} path='/' render={() => (
<div>
<AddDetails />
</div>
)}/>
<Route exact={true} path='details' render={() => (
<div>
<ShowDetails />
</div>
)}/>
</div>
</BrowserRouter>
关于javascript - A "A <Router> may have only one child element"这是我收到的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229506/