react-router + history.pushState无法正常工作

时间:2015-10-15 18:52:52

标签: react-router

我可以通过react-router获得一些正确设置历史库的帮助吗,某处的文档说我必须使用mixin来使用来自remtrouter的历史记录但是其他地方告诉我必须导入历史库才能完成任务。这太令人困惑了

1 个答案:

答案 0 :(得分:3)

如果要更改react-router的默认设置,则只需要导入历史库,这仅适用于设置路由器的情况。否则,您不需要。

无论如何,要使用history.pushState,您需要使用mixin。如果使用React Router 1.0.0-rc3,你可以这样做(一个简单的例子,但应该得到重点):

var React   = require('react');
var History = require('react-router').History;

var Link = React.createClass({
  mixins: [ History ],
  _handleClick: function(){
    this.history.pushState(null, "/example-route");  
  },
  render: function() {
    return (
      <div onClick={this._handleClick}>
        Link
      </div>
    );
  },
});

module.exports = Link;