如何解决隐藏reactJS中的导航栏
我正在尝试隐藏登录页面中的导航栏,但是经过大量尝试后仍未找到它。 这就是我的代码:
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>;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。