我一直在学习React和Redux,并注意到在使用React-Router时以编程方式(不使用<Link>
)更改URL的两种方法。
一种方法是直接推送到browserHistory
。
import React from 'react';
import { browserHistory } from 'react-router';
class Name extends React.Component {
gotoPage() {
browserHistory.push('/page');
}
render() {
return <div onClick={this.gotoPage.bind(this)}>Hello</div>
}
}
另一种是推送到this.context.router
。
import React, { PropTypes } from 'react';
import { browserHistory } from 'react-router';
class Name extends React.Component {
static contextTypes = {
router: PropTypes.object
};
gotoPage() {
this.context.router.push('/page');
}
render() {
return <div onClick={this.gotoPage.bind(this)}>Hello</div>
}
}
我应该使用一个吗?