javascript - A "A <Router> may have only one child element"这是我收到的错误

标签 javascript reactjs

由于我对 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/

相关文章:

javascript - Redux 在使用 redux thunk 时触发未定义的操作

reactjs - react-select 将下拉指示器图标更改为 font-awesome 图标不起作用

javascript - Action 图标显示为纯文本

reactjs - React-navigation:导航到相同的 RouteName 但具有不同的参数

javascript - 如何在新点 Highcharts 中添加动态 xaxis 类别标签名称

Javascript 正则表达式用表情符号替换文本

javascript - 如何使用 *ngFor 循环 [object Object]

javascript - 如何使用钩子(Hook)在 react 中切换单选按钮的选中值?

javascript - jQuery如何更新表中的行数范围

javascript - 在 Google map v3 中切换 KML 层