Подтвердить что ты не робот

Есть ли синтаксис ES6 для React-Router HOC/withRouter?

Есть ли способ использовать функцию ES6 extend с компонентом React-Router "withRouter"?

Что-то вроде этого:

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);
4b9b3361

Ответ 1

Да, это легко, см. ниже (не говоря о том, что вы должны перенаправить 2-е после установки компонента... просто пример).

Кстати, моя версия реактивного маршрутизатора равна 2.6 (требуется 2.4+ для withRouter)

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);

Ответ 2

Вы можете использовать его вот так.

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

Но вам нужно будет включить babel-plugin-transform-decorators-legacy