【发布时间】:2022-11-17 07:36:38
【问题描述】:
我有一些要根据用户角色显示的菜单项。我有 2 个用户角色来自数据库(1 for admin and 0 for normal user)。但是我的代码总是为普通用户返回菜单项,即使它是登录的管理员。
我还将用户详细信息存储在 useContext 中并在每个组件上调用它们
请帮助
我的代码
import React, { Component } from "react";
import { Link } from "react-router-dom";
import "./Menubar.css";
import { UserContext } from "../../UserContext";
const Menubar = () => {
const user = React.useContext(UserContext);
console.warn(user.role)
return (
<div>
<div className="appBottomMenu">
{user.role === 1 ? (
<Link to="/admin/home" className="item" tabIndex="1">
<div className="col">
<i className="fi fi-rr-home"></i>
</div>
</Link>
) : (
<Link to="/" className="item" tabIndex="1">
<div className="col">
<i className="fi fi-rr-home"></i>
</div>
</Link>
)}
{user.role === 1 ? (
<Link className="item" to="/admin/farmers">
<div className="col">
<i className="fi fi-rr-users"></i>
</div>
</Link>
) : (
<Link to="/area" className="item" tabIndex="1">
<div className="col">
<i className="fi fi-rr-marker"></i>
</div>
</Link>
)}
<Link to="/community" className="item">
<div className="col">
<i className="fi fi-rr-browser"></i>
</div>
</Link>
{user.role === 1 ? (
<Link className="item" to="/admin/farms">
<div className="col">
<i className="fi fi-rr-users"></i>
</div>
</Link>
) : (
<Link to="/shop" className="item">
<div className="col">
<i className="fi fi-rr-shopping-cart"></i>
</div>
</Link>
)}
<Link to="/profile" className="item">
<div className="col">
<i className="fi fi-rr-user"></i>
</div>
</Link>
</div>
</div>
);}
export default Menubar;
【问题讨论】:
-
console.warn(user.role)记录了什么? -
我只是想用它在控制台上显示用户角色。确实如此。当前用户角色为1,则显示为1
-
是的,但它在这里很重要 - 只需在此处粘贴
console.log(user.role, typeof user.role)记录的内容 -
也许它是一个字符串,因此您的 if 检查将失败并呈现普通用户..如果是这样,请尝试使用 == 而不是 ===
-
对不起,我看到了别的东西。它记录
undefined 'undefined'
标签: javascript reactjs