首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应路由器Dom v6,路由继续添加

响应路由器Dom v6,路由继续添加
EN

Stack Overflow用户
提问于 2022-07-02 20:28:12
回答 2查看 474关注 0票数 1

当我设置并通过路由进行更改时,路由就会继续添加Infront。

示例:-如果我在http://localhost:3001/login页面上,并单击“注册链接”,则在前面添加register路由,如==> http://localhost:3001/login/register

有人能告诉我我做错了什么吗?

App.js

代码语言:javascript
复制
import "./App.scss";
import { Routes, Switch, Route } from "react-router-dom";

import Home from "./components/Home/Home";
import Login from "./components/Login/Login";
import Register from "./components/Register/Register";

function App() {
    return (
        <Routes>
            <Route exact path="/" element={<Home />} />
            <Route path="/login" element={<Login />} />
            <Route path="/register" element={<Register />} />
        </Routes>
    );
}

export default App;

Home.js

代码语言:javascript
复制
import React from "react";
import { Link, Router } from "react-router-dom";

function Home() {
    return (
        <div>
            Home
            <ul>
                <li>
                    <Link to="login">Login</Link>
                </li>
                <li>
                    <Link to="register">Register</Link>
                </li>
            </ul>
        </div>
    );
}

export default Home;

Register.js

代码语言:javascript
复制
import React from "react";
import { Link, Router } from "react-router-dom";

function Register() {
    return (
        <div>
            Register
            <ul>
                <li>
                    <Link to="login">Login</Link>
                </li>
            </ul>
        </div>
    );
}

export default Register;

Login.js

代码语言:javascript
复制
import React from "react";
import { Link, Router } from "react-router-dom";

function Login() {
    return (
        <div>
            Login
            <ul>
                <li>
                    <Link to="register">Register</Link>
                </li>
            </ul>
        </div>
    );
}

export default Login;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-02 20:37:37

我认为,在乞讨时更改链接to参数以包含/ (斜杠)应该可以解决您的问题。Final elem应该如下所示:<Link to="/register">Register</Link>

票数 0
EN

Stack Overflow用户

发布于 2022-07-03 22:32:46

问题

react-router-dom@6使用绝对路径和相对路径路由/导航。绝对路由/导航与相对路由/导航之间的区别是路径/目标中的一个领先的"/"字符。

例如,Login组件在path="/login"上呈现,并呈现到"register"的链接<Link to="register">Register</Link>。这意味着Login将链接到"register" path 相对到当前"/login"路径,从而导航到"/login/register"

path="/register"上呈现path="/register"和呈现<Link to="login">Login</Link>时也会出现同样的问题。

解决方案

使用绝对路径:

示例:

代码语言:javascript
复制
function Register() {
  return (
    <div>
      Register
      <ul>
        <li>
          <Link to="/login">Login</Link>
        </li>
      </ul>
    </div>
  );
}

..。

代码语言:javascript
复制
function Login() {
  return (
    <div>
      Login
      <ul>
        <li>
          <Link to="/register">Register</Link>
        </li>
      </ul>
    </div>
  );
}

使用相对路径并导航到同级路由(即由同一个父Routes组件呈现的同级路由)。

示例:

代码语言:javascript
复制
function Register() {
  return (
    <div>
      Register
      <ul>
        <li>
          <Link to="../login">Login</Link>
        </li>
      </ul>
    </div>
  );
}

..。

代码语言:javascript
复制
function Login() {
  return (
    <div>
      Login
      <ul>
        <li>
          <Link to="../register">Register</Link>
        </li>
      </ul>
    </div>
  );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72842227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档