如何从其他组件隐藏组件开始通过react上的路由进行渲染

时间:2019-07-16 16:55:45

标签: reactjs

当另一个组件在布线时,我想隐藏一个组件

更具体地说,我有一个固定的底部导航栏,当用户对组件进行路由时,我想隐藏该导航栏,在这种情况下,它是一个注释框

我的第一个选择是尝试使用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>....



0 个答案:

没有答案