ReactJS渲染url改变的子视图
ReactJS rendering sub views with url change
我试图将子视图(组件)呈现到基于组件上链接的导航菜单上,相应地改变url。我的路由器是:
const router = new Router(on => {
on('*', async (state, next) => {
const component = await next();
return component && <App context={state.context}>{component}</App>;
});
on('/profile', async () => <ProfilePage />);
on('/contact', async () => <ContactPage />);
on('/login', async () => <LoginPage />);
on('/register', async () => <RegisterPage />);
on('*', async (state) => {
const content = await http.get(`/api/content?path=${state.path}`);
return content && <ContentPage {...content} />;
});
on('error', (state, error) => state.statusCode === 404 ?
<App context={state.context} error={error}><NotFoundPage /></App> :
<App context={state.context} error={error}><ErrorPage /></App>);
});
class ProfilePage extends React.Component {
render() {
var user = "Username";
return (
<div>
<ProfileHead>
<Cover user={user} />
<Menu />
<SubMenu />
</ProfileHead>
<ProfileBody>
<ProfileHome />
</ProfileBody>
</div>
);
}
}
class Menu extends React.Component {
render() {
return (
<div className="menu">
<div className="menu-inner">
<Nav followers="522234" following="133234" />
</div>
</div>
);
}
}
class Nav extends React.Component {
render() {
return (
<div>
<a href="#" className="menu-link active">Profile</a>
<a href="#" className="menu-link">Portfolio</a>
<a href="#" className="menu-link">Activity</a>
<a href="#" className="menu-link">Following <span className="followCount">{this.props.following}</span></a>
<a href="#" className="menu-link">Followers <span className="followCount">{this.props.followers}</span></a>
</div>
);
}
}
我不确定这是如何实现的。任何帮助都会非常感激。我是React新手,学习缓慢。
我建议使用react-router
你可以创建嵌套的路由,每个路由加载其他子组件
var Router = require('react-router');
var Route = Router.Route;
// declare our routes and their hierarchy
var routes = (
<Route handler={App}>
<Route path="about" handler={About}/>
<Route path="inbox" handler={Inbox}/>
</Route>
);
相关文章:
- javascript模式下的asp.net网格视图获胜'不要执着于改变索引
- Ajax响应并没有改变我的视图模型
- 当模型更新时,backbone和knockout如何使视图改变
- 当变量改变时,在AngularJS中更新视图
- 当视图模型属性改变复选框值时被通知
- windows 8应用程序CSS列表视图改变内联样式
- 在backbone.js中为改变主视图中的位置添加子视图
- 如何在改变视图后维护$scope中的数据?
- AngularJs的Url会改变,但旧的视图是通过ui-router加载的
- 当link只是"#"时,防止routeparams改变视图
- Angularjs改变了窗口大小的视图
- 当模型在jQuery事件中发生改变时,Angular 2不会刷新视图
- 为什么knockoutjs js不't更新视图,如果一些子数组被改变
- 当引用对象改变时,react .js视图不更新
- Vue-router 2改变路由,但不更新视图
- Angular:在改变视图时禁用滚动到顶部
- AngularJS在模型因事件而改变后不刷新视图
- 不能让AngularJS动画在视图改变时工作
- 在AngularJS中,如何在视图改变时加载脚本?
- jQuery移动列表视图改变选择项目并突出显示它