【发布时间】:2019-11-26 09:03:51
【问题描述】:
我正在努力根据来自 React-Router 的路由来渲染组件。当路线是动态的时,我似乎无法找到匹配路线的方法。
我创建了一个组件“导航栏”,我只想在特定路线上呈现它。为此,我创建了一个单独的组件“Tracker”,它与路由匹配并呈现“Navbar”组件。
Tracker.js sn-p:
class Tracker extends Component {
render() {
var NavVisible =
this.props.location.pathname === "/feed" ||
this.props.location.pathname === "/explore" ||
this.props.location.pathname === "/chatroom" ||
this.props.location.pathname === "/username" ? (
<Navbar />
) : null;
return <div>{NavVisible}</div>;
}
}
假设我必须在“feed/(some_dynamic_path)”中显示Navbar组件,我应该如何写条件?
我们将不胜感激。
谢谢。
编辑:App.js
import React, {Component} from 'react';
import {BrowserRouter, Switch, Route} from 'react-router-dom';
class App extends Component{
render(){
const DefaultContainer = () => (
<div>
<Route path='/home' component={ft}/>
<Route path='/explore' component={exp}/>
<Route path='/compose' component={add}/>
<Route path='/chatroom' component={msg}/>
<Route path='/user' component={usrpro}/>
</div>
)
return (
<BrowserRouter>
<div className="App">
<Tracker/>
<Switch>
<Route path='/' exact component={Splash}/>
<Route exact path="/(compose)" component={noNavContainer}/>
<Route exact path="/(newtext)" component={noNavContainer}/>
<Route path="/(login)" component={login}/>
<Route component={DefaultContainer}/>
</Switch>
</div>
</BrowserRouter>
);
}
}
export default App;
【问题讨论】:
标签: reactjs react-router