【问题标题】:how can i use NavLink to redirect from component to another component我如何使用 NavLink 从组件重定向到另一个组件
【发布时间】:2022-01-24 10:41:18
【问题描述】:

我想从一个组件转到另一个组件,例如我有一个带有导航链接的导航栏它的代码

import React from 'react';
import { NavLink } from 'react-router-dom';
import"./home.css";

const Home = () => {
return (
<React.Fragment>
    <nav className="navbar navbar-expand-lg ">
         <div className="container-fluid">
            <i className="fas fa-paw fa-2x"></i>
            <a className="navbar-brand " href="" >Pets Forever</a>
            <div className="collapse navbar-collapse justify-content-end" id="navbarNav">
                <ul className="navbar-nav mr-auto"> 
                    {/*<li className="nav-item active">
                        <a className="nav-link" href="/home">Home <span className="sr-only"> 
 (current)</span></a>
                    </li>
                    <li className="nav-item">
                        <a className="nav-link" href="#">Shop</a>
                    
                    </li>
                     */}
                    <li className="nav-item" >
                        <NavLink className="nav-link" to="#">About Us</NavLink>
                    
                    </li>
                    <li className="nav-item">
                        <NavLink className="nav-link" to="#">Contact Us</NavLink>

                    </li>
                     
                    <li className="nav-item">
                        <NavLink className="nav-link" to="/login">Login</NavLink>

                    </li>
                    <li className="nav-item">
                        <NavLink className="nav-link" to="#">Sign Up</NavLink>
                    </li>
            
                </ul>
            </div>
        </div>
    </nav>

   <div className="head-div">
            <h1>Hi there!</h1>
            <h1>Do you want buy me a toy?</h1>
            <br/>
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat, quia?</p>
            <p>Excepturi atque possimus quas qui temporibus ratione</p>  
            <button type="button" className="btn btn-warning">Shop Now</button>
    


        </div> 
</React.Fragment> 

  );
}

export default Home;

所以当我在另一个组件(例如“/login” for ex 时)按下“永远的宠物”NavLink 时,我希望被重定向到该组件

import React, { Component } from 'react';
import { NavLink,Navigate } from 'react-router-dom';
import "./login.css"

const Login = () => {
return (
    <React.Fragment>
        {/*this is the NavBar */}
        <nav className="navbar navbar-expand-lg ">
            <div className="container-fluid">
            <i className="fas fa-paw fa-2x"></i>
            <NavLink className="navbar-brand " to={<Navigate replace to = "/about"/>} >Pets 
 Forever</NavLink>
                <div className="collapse navbar-collapse justify-content-end" id="navbarNav">
                    <ul className="navbar-nav mr-auto"> 
                        <li className="nav-item">
                            <NavLink className="nav-link" to="#">About Us</NavLink>
                        
                        </li>
                        <li className="nav-item">
                            <NavLink className="nav-link" to="#">Contact Us</NavLink>

                        </li>
                        
                        <li className="nav-item">
                            <NavLink className="nav-link" to="/login">Login</NavLink>

                        </li>
                        <li className="nav-item">
                            <NavLink className="nav-link" to="#">Sign Up</NavLink>
                        </li>
                
                    </ul>
                </div>
            </div>
        </nav>
        {/*this is the form of sign in */}
        <main className="form-signin">
            <form>
                <div className="upper-div">
                    <i className="fas fa-paw fa-2x"></i>
                    <NavLink className="navbar-brand " to="" >Pets Forever</NavLink>
                </div>
                <div className="form-floating">
                    <input type="email" className="form-control" id="floatingInput" 
 placeholder="name@example.com"/>
                    <label htmlFor="floatingInput">Email address</label>
                </div>
                <div className="form-floating">
                    <input type="password" className="form-control" id="floatingPassword" 
 placeholder="Password"/>
                    <label htmlFor="floatingPassword">Password</label>
                </div>

                <div className="checkbox mb-3">
                    <label>
                        <input type="checkbox" value="remember-me"/> Remember me
                    </label>
                </div>
                <button className="w-100 btn btn-lg btn-primary" type="submit">Sign 
 in</button>
                <div className="icon-div">
                    <i className="fab fa-facebook fa-2x"></i>
                    <i className="fab fa-google fa-2x"></i>    
                    <i className="fab fa-twitter fa-2x" ></i>
                    <i className="fab fa-youtube fa-2x"></i>
                </div>
            </form>
        </main>
    </React.Fragment>
  );
}

export default Login;

【问题讨论】:

    标签: javascript html reactjs


    【解决方案1】:

    指定路径,

    <nav>
        <NavLink to="/">Home</NavLink>
        <NavLink to="/about">petsforever</NavLink>
    </nav>
    

    【讨论】:

    • 只是一个小问题,为什么主页采用“/”,同时在 URL 中“/”没有出现,这可能是个愚蠢的问题,但我不得不问:“D
    【解决方案2】:

    只需将 to 中的 to 属性设置为与您要重定向的组件匹配的路由。

    ...
    <NavLink className="navbar-brand" to="/desired-route">Pets Forever</NavLink>
    ...
    

    Check NavLink docs

    【讨论】:

    • 感谢帮助我
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2016-07-07
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多