我的 React App 从不加载 localhost:3000 它只是一直在旋转(认为 React-Router-Dom 是问题)

Posted

技术标签:

【中文标题】我的 React App 从不加载 localhost:3000 它只是一直在旋转(认为 React-Router-Dom 是问题)【英文标题】:My React App never loads in localhost:3000 its just always spinning (Think React-Router-Dom is the issue) 【发布时间】:2021-06-01 02:44:47 【问题描述】:

我一直在使用 React-Bootstrap 在 React 中开发一个网站,它一直运行良好,直到我安装和配置 React-Router-Dom 并开始实现路由、链接等......(我还安装了 react-使用它的路由器引导程序)

我几乎可以肯定是 react-router-dom 是一开始的问题,我遇到了类似的问题。当我创建一个新项目时,我决定在开发快结束之前不安装 react-router-dom。

当我运行 NPM Start 时,它会出现在我的浏览器中,并带有 React favicon 和应用程序名称,但加载微调器只是不断加载。

在命令行中,开发服务器编译成功,并且没有错误 - 所以我发现很难找出问题所在。

所有相关代码如下。

App.js

import './App.css';
import Navigation from "./Components/Nav";
import 'bootstrap/dist/css/bootstrap.min.css';

import  Col, Container, Row  from 'react-bootstrap';

import Karousel from './Components/Carousel';
import YtCard from './Components/Cards/YoutubeCard';
import BandcampCard from './Components/Cards/BandcampCard';
import SpotifyCard from './Components/Cards/SpotifyCard';
import Footer from './Components/Footer';

import  FormspreeProvider  from '@formspree/react';

import 
  BrowserRouter as Router,
  Switch,
  Route,
  Link
 from "react-router-dom";

import  HashRouter  from 'react-router-dom'
import Contact from './Pages/Contact';



function App(Component, pageProps ) 
  return (
    <FormspreeProvider project="music-boostrap">
      <Router>
        <div className="app">
          <div className="navigation">
            <Navigation/>
          </div>
          <Switch>
            <Route exact path="/" component=App/>
            <Route path="/contact" component=Contact/>
          </Switch>
          <div className="carousel">
            <Container className="carousel-container" fluid>
              <Karousel/>
            </Container>
          </div>
          <div className="description">
            <Container fluid>
              <Row>
                <Col className="desc-col">
                  <YtCard/>
                </Col >
                <Col  className="desc-col">
                  <BandcampCard/>
                </Col>
                <Col  className="desc-col">
                  <SpotifyCard/>
                </Col>
              </Row>
            </Container>
          </div>
          <Footer/>
        </div>
      </Router>
    </FormspreeProvider>

  );


export default App;

package.json


  "name": "music-bootstrap",
  "version": "0.1.0",
  "private": true,
  "dependencies": 
    "@formspree/react": "^2.2.3",
    "@testing-library/jest-dom": "^5.11.9",
    "@testing-library/react": "^11.2.5",
    "@testing-library/user-event": "^12.7.3",
    "bootstrap": "^4.6.0",
    "react": "^17.0.1",
    "react-bootstrap": "^1.5.0",
    "react-dom": "^17.0.1",
    "react-router-bootstrap": "^0.25.0",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.3",
    "web-vitals": "^1.1.0"
  ,
  "scripts": 
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  ,
  "eslintConfig": 
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  ,
  "browserslist": 
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  

如果您认为与解决这些问题相关的代码中缺少任何文件,请告诉我!

【问题讨论】:

浏览器控制台(开发者工具)是否有报错信息? 不幸的是什么都没有注册,完全空白 【参考方案1】:

您试图在App 中渲染App,这会导致无限递归,您需要在此处使用不同的组件

<Route exact path="/" component=App/>

【讨论】:

感谢 Nadia,感谢它解决了这个问题!你能更深入地解释一下你的意思吗?我用于 react-router-dom 的许多指南都显示了使用开关的方式 很高兴它对你有用!你能给我一个你使用的指南的例子吗?

以上是关于我的 React App 从不加载 localhost:3000 它只是一直在旋转(认为 React-Router-Dom 是问题)的主要内容,如果未能解决你的问题,请参考以下文章

React Native iOS 启动开发服务器但从不连接然后崩溃

在React中访问标头值

create-react-app:如何在 React 渲染之前加载 html

Django前台应用无法加载React组件。

部署 create-react-app 时无法加载资源错误 404

无法使用 React 加载本地视频