为什么导航到一条不能反应的路线?

Why Navigate to a route not working in react?

我有一个反应应用程序,其中用户只有在注册/登录后才能访问主页。我已经在主页中检查了 firebase 在身份验证时提供的用户对象,如果它未定义,我已经使用 Navigate 将用户重定向回注册。

相同的代码:

import React, {useEffect,useState} from 'react'
import {Link,useNavigate,Navigate} from 'react-router-dom';
import profile from './t1.webp'




var usernm="";
 const Homepage = ({user,username,setusername}) => {
     
    if(user=={} || !user)
    {
        console.log(!user);
    <Navigate to="/signup"></Navigate>
    console.log("sycsd")
    }
  
    return (
        <>
            <header>
               //code for homepage
            </header>
        </>
    )
}

export default Homepage

我的console.log:


Homepage.js:29 true
Homepage.js:31 sycsd

显然两个 console.log 都在工作,但仍未导航到注册。

你需要这样做

Const nav=useNavigate()
if(user=={} || !user)
 {
nav("/signup");
  }