【发布时间】:2018-03-06 20:09:30
【问题描述】:
我有一个单页 React 应用程序。我有一个 BaseLayout 组件,它用作应用程序的容器。 BaseLayout 显示页眉和页脚以及如下所示的内容:
class App extends Component {
render() {
return (
<div>
<BaseLayout>
</BaseLayout>
</div>
);
}
}
基本布局
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')
)
所有导航都在 navBar.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 时,它只显示组件的内容,而不是导航栏。
如何使用 react router 和 react framework 使导航栏和页脚在所有页面上可见?
更新:
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')
)
现在,我得到以下信息:
如果我使用上面的代码,页面不会去任何地方:
【问题讨论】:
标签: reactjs react-router