我是React Router的新手,并了解到重定向页面的方法有很多:
使用
browserHistory.push("/path")
import { browserHistory } from 'react-router'; //do something... browserHistory.push("/path");
使用
this.context.router.push("/path")
class Foo extends React.Component { constructor(props, context) { super(props, context); //do something... } redirect() { this.context.router.push("/path") } } Foo.contextTypes = { router: React.PropTypes.object }
在React Router v4中,有
this.context.history.push("/path")
和this.props.history.push("/path")
。详细信息:如何在React Router v4中推送到历史记录?
我对所有这些选项感到困惑,是否有最佳的方法来重定向页面?
现在有了react-router
v15.1
以后,我们可以进行useHistory
钩子了,这是超级简单明了的方式。这是源博客中的一个简单示例。您可以在任何功能组件和自定义挂钩中使用它。是的,这不适用于与其他任何钩子相同的类组件。
在此处了解更多信息https://reacttraining.com/blog/react-router-v5-1/#usehistory