【问题标题】:React Router -- syntax change from version 1.0 to 2.0React Router -- 语法从 1.0 版本更改为 2.0
【发布时间】:2016-06-22 21:53:10
【问题描述】:

错误信息

警告:[react-router] 看来您已经向 `` 提供了一个已弃用的历史对象,请使用 React Router 提供的历史记录,并带有 `import { browserHistory } from 'react-router'` 或 `import { hashHistory } from 'react -路由器'`。如果您正在使用自定义历史记录,请使用 `useRouterHistory` 创建它,有关详细信息,请参阅 http://tiny.cc/router-usinghistory。


问题

有人可以告诉我如何在下面的代码中实现 react-router 2.0 语法吗?


代码

var React = require('react');
var ReactDOM = require('react-dom');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route =  ReactRouter.Route;
var Navigation = ReactRouter.Navigation;

var StorePicker = React.createClass({

  render: function(){
    var name = "tim";
    return (
      <form className="store-selector">
        <div>
          <h2>Please enter a store {name}</h2>
          <input type="text" ref="storeId" required/>
          <input type="Submit"/>
        </div>
      </form>
    )
  }
});

var routes = (
  <Router history={browserHistory}>
    <Route path="/" component={StorePicker} />
    <Route path="/store/:storeId" component={App} />
  </Router>
)

ReactDOM.render(routes, document.querySelector('#main'));

【问题讨论】:

    标签: react-router


    【解决方案1】:

    您是否真的阅读了错误消息提示的链接?

    // ReactRouter already 'require'd
    var browserHistory = ReactRouter.browserHistory;
    //...
    <Router history={browserHistory} />
    

    【讨论】:

    • 我阅读了链接。如果您能展示如何使用 require 来做到这一点,将不胜感激。我不确定如何“从 'react-router' 导入 { browserHistory }。
    • 是的,您可以使用 import 语法,或者,由于您已经使用“require”来获取 react-router,您应该可以使用 ReactRouter.browserHistory 访问它。
    【解决方案2】:

    您可以通过在变量下方写入以下内容来简单地导入它。 从 'react-router' 导入 { browserHistory }

    【讨论】:

      猜你喜欢
      • 2016-12-31
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      相关资源
      最近更新 更多