通过 React js 中的 Role 隐藏导航栏
Hide navigation Bar via Role in React js
如何在 React js 中隐藏角色 ('Admin' & 'user') 之间的导航栏
例子
const [currentUser, setCurrentUser] = useState("");
const [role, setRole] = useState("");
let navigation = [];
useEffect(async () => {
// get user from Local storage
const user = authService.getCurrentUser();
if (!user) return;
setCurrentUser(user);
// get Role from Database
currentUser && setRole(authService.getRoleByUserId(currentUser.id));
console.log(currentUser);
}, [currentUser.id]);
if (currentUser && role === "Admin") {
navigation = [
{ name: "Home", href: "/Home", action: false, icon: false },
{ name: "Vendors", href: "/vendors", action: false, icon: false },
{ name: "Pricing", href: "/pricing", action: false, icon: false },
{ name: "Profile", href: "/profile", action: false, icon: false },
{ name: "Sign Out", href: "/", action: false, icon: false },
{ name: "", href: "/Cart", action: false, icon: true },
];
} else {
navigation = [
{ name: "Home", href: "/Home", action: false, icon: false },
{ name: "Pricing", href: "/pricing", action: false, icon: false },
{ name: "Sign In", href: "/login", action: false, icon: false },
{ name: "", href: "/Cart", action: false, icon: true },
];
}
return (
...
我该怎么做?欢迎提出建议。
您不应该在 useEffect
中使用 currentUser
,而应使用 user
。
尝试:
// get user from Local storage
const user = authService.getCurrentUser();
if (!user) return;
setCurrentUser(user);
// get Role from Database
user && setRole(authService.getRoleByUserId(currentUser.id));
如何在 React js 中隐藏角色 ('Admin' & 'user') 之间的导航栏
例子
const [currentUser, setCurrentUser] = useState("");
const [role, setRole] = useState("");
let navigation = [];
useEffect(async () => {
// get user from Local storage
const user = authService.getCurrentUser();
if (!user) return;
setCurrentUser(user);
// get Role from Database
currentUser && setRole(authService.getRoleByUserId(currentUser.id));
console.log(currentUser);
}, [currentUser.id]);
if (currentUser && role === "Admin") {
navigation = [
{ name: "Home", href: "/Home", action: false, icon: false },
{ name: "Vendors", href: "/vendors", action: false, icon: false },
{ name: "Pricing", href: "/pricing", action: false, icon: false },
{ name: "Profile", href: "/profile", action: false, icon: false },
{ name: "Sign Out", href: "/", action: false, icon: false },
{ name: "", href: "/Cart", action: false, icon: true },
];
} else {
navigation = [
{ name: "Home", href: "/Home", action: false, icon: false },
{ name: "Pricing", href: "/pricing", action: false, icon: false },
{ name: "Sign In", href: "/login", action: false, icon: false },
{ name: "", href: "/Cart", action: false, icon: true },
];
}
return (
...
我该怎么做?欢迎提出建议。
您不应该在 useEffect
中使用 currentUser
,而应使用 user
。
尝试:
// get user from Local storage
const user = authService.getCurrentUser();
if (!user) return;
setCurrentUser(user);
// get Role from Database
user && setRole(authService.getRoleByUserId(currentUser.id));