【问题标题】:React-router-dom displays nothing when using 'Route'使用“路由”时,React-router-dom 不显示任何内容
【发布时间】:2022-01-14 03:47:27
【问题描述】:

我正在尝试使用 react-routing-dom lib 呈现一个超简单的网页。这是我的 app.js

import React from 'react';
import Nav from './nav.js';
import Shop from './shop.js';
import About from './about.js';
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';

import './App.css';

function App() {
  return (
    <>
    <Nav />
    <Router>
      <Route exact path='/' element={<About />} />
      <Route exact path='/shop' element={<Shop />} />
    </Router>
    </>
  );
}

export default App;

使用它,我运行npm start 并期望&lt;Nav /&gt;&lt;About /&gt; 组件呈现在http://localhost:3000。相反,屏幕是完全空白的。没有警告、错误等;这是一个干净的构建。甚至没有呈现整个路由器块外部&lt;Nav /&gt; 组件!

情节变厚了:当我构建并运行以下内容时,所有三个组件都会呈现。

import React from 'react';
import Nav from './nav.js';
import Shop from './shop.js';
import About from './about.js';
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';

import './App.css';

function App() {
  return (
    <>
    <Nav />
    <Router>
      <About />
      <Shop />
    </Router>
    </>
  );
}

export default App;

据此,我认为可以安全地假设&lt;Route /&gt; 是问题所在。

react-router-dom 似乎在相对较短的时间内发生了很大的变化,因此有很多过时的信息。如果有人能指出我正确的方向,我将非常感激。

【问题讨论】:

    标签: reactjs react-router react-router-dom react-component


    【解决方案1】:

    我看到唯一缺少的是包装Route 组件的Routes 组件。您导入了Routes,但似乎没有使用它。所有Route 组件必须呈现为Routes 组件(如果嵌套则另一个Route)。如果没有Routes,您应该看到错误A &lt;Route&gt; is only ever to be used as the child of &lt;Routes&gt; element, never rendered directly. Please wrap your &lt;Route&gt; in a &lt;Routes&gt;.

    <Router>
      <Routes>
        <Route exact path="/" element={<About />} />
        <Route exact path="/shop" element={<Shop />} />
      </Routes>
    </Router>
    

    【讨论】:

    • 这就像一个魅力!我没有一起尝试过Router AND Routes。我认为这可能是我唯一没有尝试过的事情......
    【解决方案2】:

    检查您是否安装了 react-router-dom 版本 6。对于版本 6,您必须将所有 'Route' 包装在“Routes”中。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-12-26
    • 2022-03-23
    • 2022-07-07
    • 2022-10-16
    • 1970-01-01
    • 2022-07-09
    • 2018-06-04
    • 2018-12-25
    • 1970-01-01
    相关资源
    最近更新 更多