React-Router HOC / withRouter是否有ES6语法?

时间:2016-08-01 17:58:26

标签: react-router

有没有办法在React-Router" withRouter"中使用ES6 extend功能?成分

这样的事情:

import { withRouter } from 'react-router';

export default class  extends withRouter {
   ...
   //Use react router history prop to navigate back a page.
   handleSomeEvent() {
     this.props.router.goBack();
   }
   ...
}

还是我坚持使用旧的构图模式?

var MyComponent = React.createClass({
   ...
});
export default withRouter(MyComponent);

2 个答案:

答案 0 :(得分:13)

是的,这很简单,请看下面(不是说在安装组件后你应该重定向2s ......只是一个例子)。

BTW我的react-router版本是2.6(withRouter需要2.4+)

import React, { Component } from 'react';
import { withRouter } from 'react-router';

class MyComponent extends Component {
    componentDidMount() {
        setTimeout(() => {
            this.props.router.push('my-url')
        }, 2000);
    }

    render() {
        return (
            <div>My Component</div>
        );
    }
}

export default withRouter(MyComponent);

答案 1 :(得分:4)

你可以这样使用它。

&#xA;&#xA;
  @withRouter&#xA; export default class extends withRouter {&#xA; ...&#XA; //使用react路由器历史记录支持导航页面。&#xA; handleSomeEvent(){&#xA; this.props.router.goBack();&#XA; }&#XA; ...&#xA;}&#xA;  
&#xA;&#xA;

但您必须包含 babel-plugin-transform-decorators-legacy

&#xA;