4

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 />
  }
];

ページは機能していますが、ナビゲーション バーの項目をクリックして指定し、ターゲット コンポーネントをレンダリングする方法を教えてください。

4

2 に答える 2