React项目中正确路由的问题

en

我在React项目中正确路由遇到麻烦。当我进入“英雄”路线时,有一个“英雄”列表(这是一个博客)。我可以通过id链接打开文档。当我打开文档,然后单击“英雄”时,它不会呈现。如果仅我先打开主页或“关于”,然后打开“英雄”,它将呈现。也许有人可以看下面的代码告诉我,如何解决这个问题。将非常感谢您的帮助!

App.jsx

import React, { Component } from 'react';
import { BrowserRouter, Switch, Route, Link } from 'react-router-dom';
import Heroes from './components/Heroes';
import About from './components/About';

class App extends Component {
  render() {
    return (
      <BrowserRouter>
        <>
          <Header />
          <div className="container">
            <Switch>
              <Route path="/" exact component={Home} />
              <Route path="/heroes" component={Heroes} />
              <Route path="/about" component={About} />
            </Switch>
          </div>
        </>
      </BrowserRouter>
    );
  }
}

const Header = () => (
  <nav>
    <div className="container">
      <div className="nav-wrapper">
        <Link to="/" className="brand-logo">
          <i className="material-icons">home</i>
        </Link>
        <ul id="nav-mobile" className="right hide-on-med-and-down">
          <li>
            <Link to="/heroes">Heroes</Link>
          </li>
          <li>
            <Link to="/about">About</Link>
          </li>
        </ul>
      </div>
    </div>
  </nav>
);

const Home = () => (
  <>
    <h3>Fullstack Express-Apollo-React</h3>
  </>
);

export default App;

Heroes.jsx

import React, { Component } from 'react';
import { BrowserRouter, Switch, Route, Link } from "react-router-dom";
import Hero from './Hero';

const mockData = {
  "heroes": [
    {
      "_id": "5db31d0c5419031a7c8d749c",
      "title": "qqqqqqqqqqqqqqq",
      "description": "ljlkjlkjlkj",
      "date": "1572019076651"
    },
    {
      "_id": "5db331e25419031a7c8d749d",
      "title": "gfdgfdhgfdhgfdgf",
      "description": "yuytruytrytryt",
      "date": "1572019076651"
    },
    {
      "_id": "5db332405419031a7c8d749e",
      "title": "mnbvmnbvmnbvnbvmn",
      "description": "eytretretretretr",
      "date": "1572019076651"
    }
  ]
}

class Heroes extends Component {
  render() {
    return (
      <div>
        <BrowserRouter>
          <Switch>
            {mockData.heroes.map(hero => (
              <Route
                exact
                path={`/heroes/${hero._id}`}
                render={() => <Hero data={hero} />}
              />
            ))}
            <Route
              exact
              path="/heroes"
              component={Home}
            />
          </Switch>
        </BrowserRouter>
      </div>
    );
  }
}

const Home = () => {
  return (
    <>
      {mockData.heroes.map(hero => (
        <div key={hero._id}>
          <Link to={`/heroes/${hero._id}`}>
            <h3>{hero.title}</h3>
          </Link>
          <h5>{hero.description}</h5>
          <h5>{hero.date}</h5>
        </div>
      ))}
    </>
  );
};

export default Heroes;

Hero.jsx

import React, { Component } from 'react';

class Hero extends Component {
  render() {
    return (
      <>
        <h5>{this.props.data.title}</h5>
        <h5>{this.props.data.description}</h5>
      </>
    );
  }
}

export default Hero;

如有必要,这是github仓库的链接:react-homework

提前致谢!

拉扎尔·尼科里奇(​​Lazar Nikolic)

您的英雄部分有路线

    <Route
      exact
      path="/heroes"
      component={Home}
    />

指向Home组件,而在App中则指向Heroes<Route path="/heroes" component={Heroes} />可能是导致问题的原因

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在我的项目中正确配置Spring Security?

来自分类Dev

在Swift项目中正确使用Obj-C库

来自分类Dev

如何从QT项目中正确删除QML文件

来自分类Dev

如何在仅SwiftUI项目中正确显示PKPaymentAuthorizationViewController?

来自分类Dev

如何在Python项目中正确构造内部脚本?

来自分类Dev

如何在我的项目中正确配置Spring Security?

来自分类Dev

如何在Eclipse项目中正确集成OpenNLP API?

来自分类Dev

如何在cordova项目中正确设置URI?

来自分类Dev

Angular ui sortable:无法在嵌套项目中正确拖动

来自分类Dev

如何在我的项目中正确加载 Python 类?

来自分类Dev

如何在类库项目中正确定义DBContext?

来自分类Dev

如何在angular2-meteor项目中正确添加使用Meteor包?

来自分类Dev

如何在ASP MVC项目中正确使用引导选择

来自分类Dev

如何在我的Java项目中正确包含蜡染库?

来自分类Dev

如何在多目录项目中正确导入python模块?

来自分类Dev

如何在2020年的Vue项目中正确使用FontAwesome?

来自分类Dev

如何在Erlang项目中正确使用deps文件夹?

来自分类Dev

如何在Razor / CSHTML项目中正确使用jQuery.get()?

来自分类Dev

我的项目中正确的相对路径是什么?

来自分类Dev

如何在angular2-meteor项目中正确添加使用Meteor包?

来自分类Dev

如何在自定义项目中正确设置站点地图添加

来自分类Dev

如何在 Vue 项目中正确导入 Three.js 模块?

来自分类Dev

如何在VS 2013的VSIX模板项目中正确嵌入自定义向导程序集?

来自分类Dev

在.Net Core 3.0项目中正确设置ASP.Net Core授权和身份验证

来自分类Dev

如何在使用LDAP进行身份验证的项目中正确配置Spring Security的“记住我”选项?

来自分类Dev

添加视图,然后在Rails中正确路由

来自分类Dev

如何在React-Router中正确处理子路由(路由有效,但每次单击都会增加URL)

来自分类Dev

python项目中的Pymongo问题

来自分类Dev

项目中按钮闪烁的问题

Related 相关文章

  1. 1

    如何在我的项目中正确配置Spring Security?

  2. 2

    在Swift项目中正确使用Obj-C库

  3. 3

    如何从QT项目中正确删除QML文件

  4. 4

    如何在仅SwiftUI项目中正确显示PKPaymentAuthorizationViewController?

  5. 5

    如何在Python项目中正确构造内部脚本?

  6. 6

    如何在我的项目中正确配置Spring Security?

  7. 7

    如何在Eclipse项目中正确集成OpenNLP API?

  8. 8

    如何在cordova项目中正确设置URI?

  9. 9

    Angular ui sortable:无法在嵌套项目中正确拖动

  10. 10

    如何在我的项目中正确加载 Python 类?

  11. 11

    如何在类库项目中正确定义DBContext?

  12. 12

    如何在angular2-meteor项目中正确添加使用Meteor包?

  13. 13

    如何在ASP MVC项目中正确使用引导选择

  14. 14

    如何在我的Java项目中正确包含蜡染库?

  15. 15

    如何在多目录项目中正确导入python模块?

  16. 16

    如何在2020年的Vue项目中正确使用FontAwesome?

  17. 17

    如何在Erlang项目中正确使用deps文件夹?

  18. 18

    如何在Razor / CSHTML项目中正确使用jQuery.get()?

  19. 19

    我的项目中正确的相对路径是什么?

  20. 20

    如何在angular2-meteor项目中正确添加使用Meteor包?

  21. 21

    如何在自定义项目中正确设置站点地图添加

  22. 22

    如何在 Vue 项目中正确导入 Three.js 模块?

  23. 23

    如何在VS 2013的VSIX模板项目中正确嵌入自定义向导程序集?

  24. 24

    在.Net Core 3.0项目中正确设置ASP.Net Core授权和身份验证

  25. 25

    如何在使用LDAP进行身份验证的项目中正确配置Spring Security的“记住我”选项?

  26. 26

    添加视图,然后在Rails中正确路由

  27. 27

    如何在React-Router中正确处理子路由(路由有效,但每次单击都会增加URL)

  28. 28

    python项目中的Pymongo问题

  29. 29

    项目中按钮闪烁的问题

热门标签

归档