问题描述
我正在尝试隐藏登录页面中的导航栏,但是经过大量尝试后仍未找到它。 这就是我的代码:
function App(props) {
var [isNavbarHidden,setIsNavbarHidden] = useState(false);
useEffect((props) => {
const HiddenNavbar = () =>setIsNavbarHidden = true ;
});
return (
<>
<Router>
{isNavbarHidden ? null : <Navbar />}
<Switch>
<Login path='/' {props.HiddenNavbar} />
<Route path="/" exact component={Home} />
<Route path="/Events" component={Events} />
<Route path="/Support" component={Support} />
<Route path="/Payments" component={Payments} />
<Route path="/Classes" component={Classes} />
<Route path="/Employees" component={Employees} />
<Route path="/Students" component={Students} />
<Route path="/Charges" component={Charges} />
</Switch>
</Router>
</>
);
}
export default App;
我在等你的帮忙..
解决方法
第一件事:
useEffect((props) => {
const HiddenNavbar = () =>setIsNavbarHidden = true ;
});
这里,您仅创建一个名为HiddenNavbar的函数,该函数在调用时会将setIsNavbarHidden更改为true。首先,您永远不会调用它;其次,setIsNavbarHidden是一个函数,而不是一个值。
您想要做的是:
useEffect((props) => {
setIsNavbarHidden(true);
},[]);
,
我们的姓氏是:D
好吧Okba,所以首先让我告诉您,处理此问题通常需要您设置两个路由器组,一个组说“ / app / *”包含应用程序,另一个可能是“ / auth”不包含标头组件,但正如我在这里看到的那样,这不是您正在做的事情,因此将向您展示如何这样做,但这不是一个好习惯,首先请除去app函数中的useEffect并将setIsNavbarHidden函数作为道具传递到Login组件或页面,然后在Login组件的安装位置上运行useEffect,标题将被隐藏,所以这是您可以使用的代码的模型
App.js
function App(props) {
var [isNavbarHidden,setIsNavbarHidden] = useState(false);
return (
<>
<Router>
{isNavbarHidden ? null : <Navbar />}
<Switch>
<Route path="/" exact component={Home} />
<Route path='/login' render={() => <Login setNavbar={setIsNavbarHidden} />}/>
<Route path="/Events" component={Events} />
<Route path="/Support" component={Support} />
<Route path="/Payments" component={Payments} />
<Route path="/Classes" component={Classes} />
<Route path="/Employees" component={Employees} />
<Route path="/Students" component={Students} />
<Route path="/Charges" component={Charges} />
</Switch>
</Router>
</>
);
}
export default App;
Login.js
import React from "react";
export default function Login({ setNavbar }) {
useEffect(() => {
setNavbar(true);
},[]);
return <div>// login Code //</div>;
}