React Router - 除了使用Context之外,还有一种“更简单”的方式来路由到新路径吗?

时间:2016-10-20 21:03:43

标签: javascript reactjs redux react-router

是否有更简单或更近期的方式,例如,点击按钮并单击该按钮,重新路由到新路径?

.... BESIDES在组件上使用上下文方法?

由于

1 个答案:

答案 0 :(得分:4)

有办法:

1。withRouter - 来自react-router(高阶组件)的HoC,它包装另一个组件以提供 props.router

import { withRouter } from 'react-router';

class App extends Component {
   ...
    onClickButton(){
      this.props.router.push('/path')
    }
   ...
}

export default withRouter(App);

2. 历史单身人士(hashHistory / browserHistory)

import { hashHistory} from 'react-router';

class App extends Component {
   ...
    onClickButton(){
      hashHistory.push('/path')
    }
   ...
}

3.此外,您可以组件中的道具获取历史记录,将其传递给路径

....
<Route path="/" component={App} />

然后在Component

class App extends Component {
   ...
    onClickButton(){
      this.props.history.push('/path')
    }
   ...
}