【问题标题】:Chrome is showing strange errors for my React App after installing Router安装路由器后,Chrome 显示我的 React 应用程序出现奇怪错误
【发布时间】:2020-11-10 05:35:52
【问题描述】:

我正在将网站从静态 HTML/CSS/JS 网站转换为 React SPA,我想使用 React Router 进行导航。我将路由器安装到正确的目录,从正确的目录运行npm start,我的终端显示一切编译成功,但我的浏览器看起来像这样:

App.js 文件:

import React from 'react';
import './styles/App.css';
import Navbar from './components/Navbar';

class App extends React.Component {
  render() {
    return (
      <div className = "App">
      <div id ='container' className = 'container light'>
      <Navbar />
      </div>
        
      </div>
    )
    
  }
}



export default App;

Navbar.js 文件:

import React, { Component } from 'react';
import '../styles/App.css';
import logo from '../img/logo.png'
import {
    BrowserRouter as Router,
    Switch,
    Route,
    Link
} from "react-router-dom";
import App from '../App';
import About from './About';
import Portfolio from './Portfolio';

class Navbar extends Component {
    render() {
        return (
            <Router>
                <div className="Navbar">
                    <nav>
                        <ul className="navlist">
                            <Link to={App}>
                                <li className="active">Home</li>
                            </Link>
                            <Link to={About}>
                                <li>About Me</li>
                            </Link>
                            <Link to={App}>
                                <img className="brand" src={logo} alt="" />
                            </Link>
                            <Link to={Portfolio}>
                                <li>Portfolio</li>
                            </Link>
                            <li className="toggler"><span role="img" aria-label="dark moon">????</span></li>
                        </ul>
                    </nav>
                    <Switch>
                        <Route path= {About}>
                            <About />
                        </Route>
                        <Route path= {Portfolio}>
                            <Portfolio />
                        </Route>
                        <Route path= '{App}'>
                            <App />
                        </Route>
                    </Switch>
                </div>
            </Router>
        )
    }
}

export default Navbar;

关于.JS

import React, { Component } from 'react';
import '../styles/App.css';
import Navbar from './Navbar'

class About extends Component {
    render() {
        return (
            <div className="About">
                <Navbar />
                <h1>Hello World, This is the About Page</h1>
            </div>
        )
    }
}

export default About;

Portfolio.JS

import React, { Component } from 'react';
import '../styles/App.css';
import Navbar from './Navbar'

class Portfolio extends Component {
    render() {
        return (
            <div className="Portfolio">
                <Navbar />
                <h1>Hello World, This is the Portfolio Page</h1>
            </div>
        )
    }
}

export default Portfolio;

我是 React 新手,我不确定我做错了什么。很高兴分享所需的任何其他信息。

【问题讨论】:

  • Ciao,你能给我们介绍一下组件代码吗?
  • 您好,您可以发布实际代码吗?从App组件开始,一直追踪到调用locationUtils的组件,包括About组件/代码?无法调试不存在的代码。
  • 已更新以显示实际代码——我没有任何组件调用locationUtils,这很奇怪——截图中的那些定位函数不是我写的,而且Desktop/modules/etc 显示的路径不是我正在工作的项目目录。这就是为什么它很奇怪,我无法弄清楚发生了什么。

标签: reactjs npm react-router create-react-app


【解决方案1】:

Link 不是这样使用的,to 属性应该有你想要导航的路径,然后你必须使用带有两个选项的Route HOC,将组件作为子组件传递或在component道具

链接

<Link to="/about">
  About
</Link>

路线

<Route path="/about" component={About} />
<Route path="/about">
  <About/>
</Route>

【讨论】:

  • 谢谢!效果很好,我还在弄清楚路由器,如果这是一个愚蠢的问题,我很抱歉哈哈,非常感谢!
  • 没有愚蠢的问题,很高兴我能帮助你,也许你想从这里开始reactrouter.com/web/guides/quick-start
猜你喜欢
  • 2014-12-25
  • 2011-06-15
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多