有没有办法将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();
}
...
}
Run Code Online (Sandbox Code Playgroud)
还是我坚持使用旧的构图模式?
var MyComponent = React.createClass({
...
});
export default withRouter(MyComponent);
Run Code Online (Sandbox Code Playgroud)
Mar*_*vec 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);
Run Code Online (Sandbox Code Playgroud)
你可以这样使用它。
@withRouter
export default class extends withRouter {
...
//Use react router history prop to navigate back a page.
handleSomeEvent() {
this.props.router.goBack();
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是你必须包含babel-plugin-transform-decorators-legacy
| 归档时间: |
|
| 查看次数: |
7439 次 |
| 最近记录: |