重定向到在 React-router 2 中以编程方式重定向到页面
redirect to a page programmatically in react-router 2
我正在使用react-router-2。我想在成功登录或执行某些操作后以编程方式重定向到页面。
我的路由文件是这样的(路由.js)
<Route path="/" component={App}>
<IndexRoute component={Home}/>
<Route path="/login" component={Login} onEnter={redirectToDashboard}/>
<Route path="dashboard" component={Dashboard} onEnter={redirectToLogin}/>
</Route>
onEnter 钩子
function redirectToLogin(nextState, replace) {
// Perform some authentication check
if (!loggedIn) {
replace({
pathname: '/login',
state: { nextPathname: nextState.location.pathname }
});
}
}
function redirectToDashboard(nextState, replace) {
// Perform some check if already authenticated
if (loggedIn) {
replace('/dashboard')
}
}
我想在成功登录后从登录component
重定向到仪表板component
。
要重定向,您可以使用上下文中的router
对象。您必须在组件(从中进行重定向的组件)中声明上下文类型。有关上下文链接的更多信息
ES6/7 语法:
static contextTypes = {
router: React.PropTypes.object.isRequired
}
现在您可以访问路由器对象,并且可以进行重定向:
this.context.router.push('/dashboard');
相关文章:
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 使用angular重定向到html页面
- 如何在chrome扩展中重定向到html页面
- 无法从jquery Mobile导航栏重定向到另一个页面
- ng视图外的链接重定向到ng视图内的页面
- AJAX上重定向视图的正确方式'成功'MVC应用程序中
- 防止Angular网站上未经授权的用户在重定向到登录之前看到网站的最佳方式
- 重定向到在 React-router 2 中以编程方式重定向到页面
- 角度重定向到其他方式而不检测视图,但当我单击后退按钮时它可以工作
- 单击一行时重定向到操作的正确方式(onclick)Yii2
- 在Javascript中重定向的正确方式
- 在响应请求之前,web服务器可以通过何种方式检查是否重定向现有页面上的GET请求
- 链接(重定向)以隐身方式打开,或在新选项卡中打开,或显式声明了新页面.刚点击时不工作
- 使用DIV作为链接触发新选项卡快捷方式的重定向
- HTML页面重定向到脚本的最快方式
- 这是正确的重定向方式吗?
- 最好的方式来获得一个标签,以改变文本/重定向页面后延迟
- 将未经身份验证的用户重定向到ember中登录屏幕的最DRY方式
- 以编程方式在 JavaScript 重定向上设置引用器