我正在使用Office UI Fabric创建具有不同视图的应用。
navbar.js:
import React, { Component } from 'react';
import { Nav } from 'office-ui-fabric-react/lib/Nav';
export default class NavBar extends Component {
render() {
return (
<Nav
groups={[
{
links: [
{ name: 'Home', key: 'Home', url: '/' },
{ name: 'Activity', key: 'Activity', url: '/activity' },
{ name: 'News', key: 'News', url: '/news' },
{ name: 'Documents', key: 'Documents', url: '/documents' }
]
}
]}
/>
);
}
}
在App.js中,我只返回和。 问题是,当我单击NavBar的项目时,页面将刷新并在该路线中加载整个视图。如何重新加载组件而不是整个页面?
这是App.js渲染返回中的路由部分:
<div className="body">
<NavBar />
<Router>
<div style={{ flex: 1}}>
{routes.map((route, index) => (
<Route
key={index}
path={route.path}
exact={route.exact}
component={route.main}
/>
))}
</div>
</Router>
</div>
我的路线如下:
const routes = [
{
path: "/",
exact: true,
main: () => <Home />
},
{
path: "/activity",
exact: true,
main: () => <Activity />
},
{
path: "/news",
exact: true,
main: () => <News/>
},
{
path: "/documents",
exact: true,
main: () => <Documents />
}
];
页面工作正常,但是如果我单击导航栏项目,然后渲染目标组件,该如何使用它来指定导航栏项目?
答案 0 :(得分:0)
我找到了答案: https://github.com/OfficeDev/office-ui-fabric-react/issues/915
我在每个项目中都使用了onClick,并且使用了传统的e.preventDefault来停止默认行为
答案 1 :(得分:0)
从“反应路由器”导入{重定向};
和
Return <Redirect to='/path_name' />;