如何修复"路由器不再默认历史记录支持哈希历史记录"警告?

时间:2016-06-18 14:21:39

标签: javascript reactjs npm

我使用浏览器历史记录,这是我在routes.js

中的代码
 export default (
   <Router history={browserHistory}>
     <Route path="/" component={Main}>
       <Route path="home/:username" component={Home}>
         <IndexRoute component={HomeContent}></IndexRoute>
         <Route path="widget/:second" component={Widget}></Route>
         <Route path="email/:second" component={Email}>
           <Route path="compose" component={ComposeEmail}></Route>
           <IndexRoute component={CheckEmail}></IndexRoute>
         </Route>
         <Route path="social/:second" component={Social}></Route>
         <Route path="calendar/:second" component={Calendar}></Route>
       </Route>
       <IndexRoute component={Login}></IndexRoute>
     </Route>
   </Router>
 );

我使用this.context.router.push(&#39; /&#39;)进行导航。我不知道为什么这个警告会一直显示在我的控制台中?

 "Warning: [react-router] `Router` no longer defaults the history prop to hash history. Please use the `hashHistory` singleton instead."

我已经在https://github.com/reactjs/react-router/blob/master/upgrade-guides/v2.0.0.md#no-default-history阅读了文档,但它并没有真正帮助。

我感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

您需要使用hashHistory代替browserHistory。考虑到您正在使用import synthax,您可以从hashHistory导入react-router以替换browserHistory

import { hashHistory, Router, ... } from 'react-router';

const history = new hashHistory();

export default (
  <Router history={history}>
  ...
  </Router>
);