【发布时间】:2017-08-30 02:39:40
【问题描述】:
我有 3 个主要组件。
这个组件渲染整个应用程序
import React,{Component} from 'react';
import IndexContent from './components/indexContent';
import IndexHome from './components/IndexHome';
import Root from './components/root';
import {BrowserRouter as Router, Match, Miss} from 'react-router';
class Home extends Component{
return(
<Router>
<div>
<Root />
<Match exactly pattern='/' component={IndexContent}/>
<Match pattern="/indexhome" component={IndexHome}/>
</div>
</Router>
)
};
export default Home;
在这个组件中,我有导航栏和页脚,在 {this.props.children} 中,我希望呈现被点击的组件。
import React,{Component} from 'react';
import NavBar from './NavBar';
import Footer from './footer';
class Root extends Component{
render:function(){
return(
<div>
<NavBar/>
{this.props.children}
<Footer/>
</div>
)
}
};
export default Root;
我还有另一个带有链接的组件
import { Link } from 'react-router';
<Link to="/indexhome">Join In</Link>
我现在尝试了一个星期来让它工作。我知道有这个新版本的“react-router”,语法可能有问题。
如果我想要的只是默认情况下索引页面是 {IndexContent} 并且单击链接时会呈现 {IndexHome},那我做错了什么?
{Root} 是一种让导航栏和页脚出现在所有页面中的方法
【问题讨论】:
-
问你两个问题:1.你用的是什么版本的
react-router? 2. 你只想要一个nav-bar来渲染路由器提供的组件,而不需要重新渲染“布局”(你的Root组件)? -
嗨,1. 使用 react-router 版本 4.0.0 2. 不,我想让 {IndexContent} 成为主页(您看到的第一页)和点击链接标签时(在第三个组件)将呈现 {IndexHome}。如果可能的话,我希望 {Root} 处理渲染,以便 {Footer} 和 {NavBar} 将保留在所有页面中。
-
这样的? imgur.com/C0je8Sa
-
是的,正是..
标签: reactjs react-native react-router