0
我有一个单页React应用程序。我有一个BaseLayout组件作为应用程序的容器。的baselayout显示页眉和页脚,也是内容如下所示:React Router将内容插入到BaseLayout中
class App extends Component {
render() {
return (
<div>
<BaseLayout>
</BaseLayout>
</div>
);
}
}
的baselayout
export default class BaseLayout extends Component {
render() {
return (
<div>
<NavBar />
{this.props.children}
<Footer />
</div>
)
}
}
index.js
ReactDOM.render(
<BrowserRouter>
<Switch>
<Route path="/page_one" component={PageOne} />
<Route path="/page_two" component={PageTwo} />
<Route path="/" component={App} />
</Switch>
</BrowserRouter>,
document.getElementById('root')
)
所有导航是导航栏内部.js组件。
navBar.js
export default class NavBar extends Component {
render() {
return (
<div className="nav-bar">
<button><Link to="/">Home</Link></button>
<button><Link to="/page_one">Page One</Link></button>
<button><Link to="/page_two">Page Two</Link></button>
</div>
)
}
}
pageOne.js和pageTwo.js
export default class PageOne extends Component {
constructor(props) {
super(props)
}
render() {
return (
<div>
<h1>Page One </h1>
</div>
);
}
}
的问题是,当我去page_one或page_two URL它只显示的内容组件而不是导航栏。
如何使导航栏和页脚在使用反应路由器和反应框架的所有页面上可见?
UPDATE:
App.js
class App extends Component {
render() {
return (
<div>
<BaseLayout>
</BaseLayout>
</div>
);
}
}
export default App;
我改变了我的index.js以下几点:
ReactDOM.render(
<BrowserRouter>
<Route path="/" component={App}>
<Switch>
<Route path="/page_one" component={PageOne} />
<Route path="/page_two" component={PageTwo} />
</Switch>
</Route>
</BrowserRouter>,
document.getElementById('root')
)
现在,我得到如下:
和页面不会去任何地方,如果我用上面的代码:
更新了与App.js实现代码。应用程序与BaseLayout不同。 –
在'App'的'render'内添加'{this.props.children}',然后 –
我添加了它,但它没有做任何事情。我面临的问题是,当我去page_one时,我看不到导航菜单。 –