条件渲染问题:登录/注销按钮在 React 中无法正常工作
P粉232793765
P粉232793765 2023-09-10 16:25:19
[React讨论组]

我正在开发一个 React 应用程序,我需要根据用户当前的身份验证状态有条件地呈现“登录”或“注销”按钮。但是,我遇到了条件语句未按预期工作的问题。即使用户登录后,也只显示登录按钮,除非同时显示两个按钮,否则我无法注销,这不是所需的行为。

{ isAuthenticated ? () : () }
import React from 'react'
import { FaTruckMoving } from 'react-icons/fa';
import { AiOutlineHeart, AiOutlineUser } from 'react-icons/ai'
import { BsBagCheck } from 'react-icons/bs'
import { CiLogin, CiLogout } from 'react-icons/ci'
import './Nav.css'
import { Link } from 'react-router-dom';
import { useAuth0 } from "@auth0/auth0-react";

const Nav = () => {
    const { loginWithRedirect, logout, user, isAuthenticated  } = useAuth0();
    let authButton;

  if (isAuthenticated) {
    authButton = (
      
    );
  } else {
    authButton = (
      
    );
  }
return (
    <>
        

Free Shipping for Orders upto Rs.1000

Logo
{ isAuthenticated && (

Hello, {user.name}

) }
  • Home
  • Product
  • About
  • Contact
{authButton}
) } export default Nav

我尝试了上述方法,但结果仍然相同

P粉232793765
P粉232793765

全部回复(1)
P粉245003607

您没有使用 isAuthenticated 的好方法,如果 isAuthenticated 为 True,则需要显示注销按钮,否则如果 isAuthenticated 为 False您需要显示登录按钮。

试试这个:

{ isAuthenticated ?
  (<button onClick={() => logout({ logoutParams: { returnTo: window.location.origin }          })}><CiLogout /></button>)
 :
  (<button onClick={() => loginWithRedirect()}><CiLogin /></button>)
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号