当另一个组件在布线时,我想隐藏一个组件
更具体地说,我有一个固定的底部导航栏,当用户对组件进行路由时,我想隐藏该导航栏,在这种情况下,它是一个注释框
我的第一个选择是尝试使用browserhistory和history.listen的父组件,并用math.params组成一个字符串以获取两者之间的匹配,这会改变父状态,女巫将隐藏bottomnav和代码写过试图通过道具传递生命,但是没有任何人可以帮助我吗?
class App extends React.Component {
constructor(props){
super(props);
this.state = {
showBottomNav: true
}
this.hideBottomNav = this.hideBottomNav.bind(this)
}
hideBottomNav= () => {
this.setState({
showBottomNav: false
})
}
render() {
return (
<Router>
<NavBar />
<Switch>
<Route path='/' exact component={Home} />
<Route path='/wars' exact component={Tournament} />
<Route path='/shop' exact component={Shop} />
<Route path='/library' exact component={Library} />
<Route
path='/:id'
exact
render={ props => <ExpandedPost {...props} parentMethod={() => this.hideBottomNav()} />}
/>
</Switch>
<BottomNav />
</Router>
);
}
}
export default App;
以及子级组件
export default function PostReview(props) {
const classes = useStyles();
useEffect(() => {
props.parentMethod()
},[props])
return (
<div>....