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 では、 and を返すだけです。問題は、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 />
}
];
ページは機能していますが、ナビゲーション バーの項目をクリックして指定し、ターゲット コンポーネントをレンダリングする方法を教えてください。