首页 > 解决方案 > 如果未通过身份验证,则从子路由重定向以对父路由做出反应

问题描述

如果用户未通过身份验证,我正在尝试将用户重定向到根 url:

import React from 'react';
import { Route, IndexRoute } from 'react-router';
import App from './components/App';
import LoginPage from './components/login/LoginPage';
import DashboardPage from './components/dashboard/DashboardPage';
import { Redirect } from 'react-router-dom';

export default (
  <Route path='/' component={App}>
    <IndexRoute component={LoginPage} />
    <Route
      path='/dashboard'
      render={props => (
        isAuthenticated() ?
          <DashboardPage {...props} /> :
          <Redirect to='/' />
      )}
    />
  </Route>
);

我理解为什么这个例子不起作用 - 应用程序组件期待嵌套组件的“子”道具,但这是渲染它们;我不明白的是,如果isAuthenticated在尝试导航到时返回 false,如何实现重定向/dashboard- 使用component={...}不起作用。

标签: javascriptreactjs

解决方案


推荐阅读