【问题标题】:Nav bar doesn't display when I use the <Link> tag当我使用 <Link> 标签时,导航栏不显示
【发布时间】:2020-10-01 23:30:27
【问题描述】:

我将锚标记更改为链接标记,整个组件不显示。值得注意的是,我使用了锚标记并​​且它被正确渲染。但是,更改为 Link 标记后,将不再显示任何内容。下面是我的代码:

导航栏组件

import React, {Component} from 'react';
import { Link } from 'react-router';


class Navbar extends Component {
    render() {
        return (
        <div className="Navbar">
            <ul className="navbar-list">
                <li className="active"><Link to={"/home"}>Home</Link></li>
                <li><Link to={"/about"}>About Us</Link></li>
                <li><Link to={"/pricing"}>Pricing</Link></li>
            </ul>
        </div>
    )
    }
}


export default Navbar

css

.navbar-list {
  list-style-type: none;
  padding: 0;
  margin: 0;
  overflow: hidden;
  background-color: #333;

}

.navbar-list li{
float: left;
}

.navbar-list li Link {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

.navbar-list li Link:hover{
  background-color: #111 ;
}

.active {
  background-color: #4CAF50;
}

App.js 文件

class App extends Component {
  render() {
    return (
      <div className="App">
        <Navbar />
      </div>
    );
  }
}

export default App;

【问题讨论】:

  • NavBar 是否在 Router 中呈现?我相信这样做是为了使Links 可以渲染。您在控制台中看到任何反应警告吗?
  • 你应该检查你正在使用的 react-router 版本。并阅读相应版本的文档。还要在你的css中用“a”替换“Link”。渲染后Link作为锚标签存在于dom中。

标签: javascript html css reactjs react-router


【解决方案1】:

Link 中有一些问题来自react-router 而是尝试使用

import { NavLink } from 'react-router-dom';

您的代码将如下所示:

在您的 package.json 的依赖项中并执行 npm i: include:

    "react-router-dom": "5.0.0",
import { BrowserRouter as Router } from "react-router-dom";

class App extends Component {
  render() {
    return (
      <div className="App">
<Router>
        <Navbar />
<Router>
      </div>
    );
  }
}

export default App;
import React, { Component } from 'react';

import { NavLink } from 'react-router-dom';


class Navbar extends Component {

    render() {
        return (

            <div className="Navbar">
                <ul className="navbar-list">
                    <li className="active"><NavLink to={"/home"}>Home</NavLink></li>
                    <li><NavLink to={"/about"}>About Us</NavLink></li>
                    <li><NavLink to={"/pricing"}>Pricing</NavLink></li>
                </ul>
            </div>

        )
    }
}


export default Navbar;

【讨论】:

【解决方案2】:

也许您可以尝试像这样更改 To prop on string:

<Link to="/pricing">Pricing</Link>

您可以尝试的另一件事是安装 react-router-dom 而不是 react-router。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多