React Router:browserHistory.push()vs this.context.router.push()

时间:2016-06-09 21:05:27

标签: reactjs react-router

我一直在学习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>
    }
}

我应该使用一个吗?

0 个答案:

没有答案