gpt4 book ai didi

reactjs - 与 FlowRouter react : How to show/hide component based on route

转载 作者:行者123 更新时间:2023-12-03 14:00:16 25 4
gpt4 key购买 nike

我有一个Meteor我正在使用 React 开发的应用程序我使用 FlowRouter 进行路由。我的主AppContainer因为该项目有很多组件,其中之一就是页脚。

class AppContainer extends Component {
render() {
return(
<div className="hold-transition skin-green sidebar-mini">
<div className="wrapper">
<Header user={this.props.user} />
<MainSideBar />
{this.props.content}
<Footer />
<ControlSideBar />
<div className="control-sidebar-bg"></div>
</div>
</div>
)
}
}

我有几条通往各个聊天室的路线:

例如。

/chatroom/1
/chatroom/2
/chatroom/3

有没有办法隐藏 <Footer />如果路由是 /chatroom/<anything> ,则组件?

最佳答案

您也许可以通过检查当前路径来进行条件渲染。

如果<anything> /chatroom/ 之后的部分(我假设它是一个参数)并不重要,如果您没有任何其他以 chatroom 开头的路由,您可以尝试这个:

 const currentPath = window.location.pathname
{!currentPath.includes('chatroom') ? <Footer /> : null }

所以你的代码将如下所示:

class AppContainer extends Component {
render() {
currentPath = window.location.pathname
return(
<div className="hold-transition skin-green sidebar-mini">
<div className="wrapper">
<Header user={this.props.user} />
<MainSideBar />
{this.props.content}
{!currentPath.includes('chatroom')
? <Footer />
: null }
<ControlSideBar />
<div className="control-sidebar-bg"></div>
</div>
</div>
)
}
}

如果<anything>部分很重要并且/或者您有其他以 chatroom 开头的路由,您可以首先使用

获取路由的参数
const param = FlowRouter.getParam('someParam');

然后通过检查当前路径是否包含 chatroom/:param 来进行条件渲染,如下所示:

  const currentPath = window.location.pathname
{!currentPath.includes(`chatroom/${param}`) ? <Footer /> : null }

所以你的代码看起来像这样

 class AppContainer extends Component {
render() {
const currentPath = window.location.pathname
const param = FlowRouter.getParam('someParam');
return(
<div className="hold-transition skin-green sidebar-mini">
<div className="wrapper">
<Header user={this.props.user} />
<MainSideBar />
{this.props.content}
{!currenPath.includes(`chatroom/${param}`)
? <Footer />
: null }
<ControlSideBar />
<div className="control-sidebar-bg"></div>
</div>
</div>
)
}
}

关于reactjs - 与 FlowRouter react : How to show/hide component based on route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41384686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com