具有中央路由文件的历史对象

history object with central Routes file

我在网上看到了很多关于如何在 React Router 中使用 history 对象的例子。但是,我还没有偶然发现示例显示中央路由文件的情况,如下所示:

routes.js

const RouteList = () => (
  <main>
    <Switch>
      <Route path="/" exact component={HomePage} />
      <Route component={Error} />
    </Switch>
  </main>
);

export default RouteList;

App.js

render() {
    return (
        <div>
           <Header />
           <RouteList />
           <Footer />
        </div>
    );
}

history.js

import { createBrowserHistory } from 'history';

export default createBrowserHistory();

有人可以阐明我如何在我的集中路由中使用历史记录吗?或者如果有其他类似的帖子请告诉我,非常感谢。

需要将自定义历史记录对象作为道具提供给路由器提供程序组件。在您的情况下,您可以在 App.jsRouteList 中指定路由器提供商,具体取决于 HeaderFooter 是否也需要路由器道具。

import browserHistory from './history.js';

...
render() {
    return (
      <Router history={browserHistory}>
        <div>
           <Header />
           <RouteList />
           <Footer />
        </div>
      </Router>
    );
}

同样在您的 history.js 文件中,导入 createBrowserHistory like

import createBrowserHistory from 'history/createBrowserHistory';