Reactjs 反应路由器重定向在专用路由中不工作

Reactjs 反应路由器重定向在专用路由中不工作,reactjs,redirect,react-router,react-router-v4,react-router-dom,Reactjs,Redirect,React Router,React Router V4,React Router Dom,我有一个私有路由组件,它只在用户登录时用于呈现组件,否则它应该重定向到登录页面 const PrivateRoute = ({ component: Component, ...rest }) => ( <Route {...rest} render={props => ( authToken() ? <Component {...props} /> : <Redirect to=

我有一个私有路由组件,它只在用户登录时用于呈现组件,否则它应该重定向到登录页面

const PrivateRoute = ({ component: Component, ...rest }) => (
    <Route {...rest} render={props => (
            authToken()
            ? <Component {...props} />
            : <Redirect to={{ pathname: '/login', state: { from: props.location } }} />
    )} />
)

export default withRouter(PrivateRoute);
const PrivateRoute=({component:component,…rest})=>(
(
authToken()
? 
: 
)} />
)
使用路由器导出默认值(PrivateRoute);
这是我的主要应用程序:

            <BrowserRouter>
                <div className="wrapper">
                    <Switch>
                        <Route path="/login" component={LoginPage} />
                        <> 
                        <div className="dashboard">
                            <SideBar />
                            {permittedEvents &&
                                <div className="content-area">
                                    <PrivateRoute exact path="/" component={Dashboard} />
                                    <PrivateRoute exact path="/calendar" component={Calendar} />
                                </div>
                            }
                        </div>
                        </>
                    </Switch>
                </div>
            </BrowserRouter>

{许可证持有人&&
}
由于某些原因,重定向被完全忽略,当用户未登录时,侧边栏将被呈现,但内容或登录页面也不会被呈现

我尝试只返回te私有路由中的重定向,以强制te重定向并检查它是否与我的身份验证有关。但无论重定向包含在何处,它似乎都不起作用。

您不需要路由

class PrivateRoute extends React.Component {
    constructor(props) {
        super(props);
    }

    render() {
        const { component: Component, ...rest } = this.props;

        const redirectPath = (<Redirect to={{
            pathname: "/login",
            state: {
                from: this.props.location.pathname
            }
        }}/>);

   if (!ok) {
                return redirectPath;
            }
        return <Component {...this.props} />;
    }
};

export default  withRouter(PrivateRoute);
类PrivateRoute扩展了React.Component{
建造师(道具){
超级(道具);
}
render(){
const{component:component,…rest}=this.props;
常量重定向路径=();
如果(!ok){
返回重定向路径;
}
返回;
}
};
使用路由器导出默认值(PrivateRoute);

但现在路线正在传递道具,只是说道具没有定义,重定向中的道具位置如何?我更改了答案。我使用课堂形式。