当我单击 时,React Router 4.1.1 不会呈现

2024-02-06

我只是尝试单击一个组件并做出反应重新渲染需要渲染的内容。但我根本无法存档。这是我到目前为止所拥有的:

Index.js(这是我尝试存储所有路线的地方)

import React from "react";
import ReactDOM from "react-dom";
import Main from "./pages/index/main.js";
import Login from "./pages/signin/signin.js";
import { BrowserRouter as Router, Route, Switch} from "react-router-dom";
ReactDOM.render(
  <div>
    <Router>
      <Switch>
        <Route exact  path="/" render={()=> <Main />}/>
        <Route path="/login" render={()=> <Login />}/>
      </Switch>
    </Router>
  </div>,
  document.getElementById("root")
);

Header.JS(我在其中设置了链接标签)

import React from "react";
import style from "./../acc/css/navbar.css";
import { BrowserRouter as Router, Link} from "react-router-dom";
export default class Header extends React.Component {
    render() {
        return (
            <Router>
    <section className={style.nav} id="nav">
            <ul>
        <li><Link to="/">Home</Link></li>
        <li><Link to="/login">Login</Link></li>
            </ul>
        </section>
        </Router>
        );
    }
}

截至目前,当我手动转到/,它呈现Main组件,当我手动转到/login,它呈现Login成分。

但是,当我点击<Link>组件,它不会渲染,它只是将 URL 更改为/login或相反亦然。

我想知道这个问题有什么解决办法吗?

Edit 1

Main.js代码

import React from "react";
//import compunts
import Header from "./../header.js";
import Qoute from "./qoute.js";
import Grades from "./grades.js";

export default class Main extends React.Component {
    render() {
        return (
      <div id="continor">
                <Header />
                <Qoute />
                <Grades />
            </div>
        );
    }
}

登录.js

    import React from "react";
    import Header from "./../header.js";
    import Qoute from "./qoute.js";
    import Form from "./form.js";
    export default class Login extends React.Component {
        render() {
            return(
          <div>
          <Header />
            <section id="info">
              <div className="containor">
                <div className="row">
                  <Qoute />
                  <Form />
                </div>
              </div>
            </section>
          </div>
            );
        }
    }

为了澄清起见,我尝试过

<Route exact path="/" component={Main}/>

但这仍然行不通。有什么解决办法吗?


现在你有<Link>里面的元素<Router>标签。你必须删除这个<Router>并且链接开始工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我单击 时,React Router 4.1.1 不会呈现 的相关文章

随机推荐