使用 React Router V4 重定向到 ReactJS 组件上的服务器路由

门德斯

我的 React Router V4 路由是这样构建的:

const isAuthenticated = () => {
    let hasToken = localStorage.getItem("jwtToken");
    if (hasToken) return true;
    return false;
};

const AuthenticatedRoute = ({ component: Component, ...rest }) =>
    <Route
        {...rest}
        render={props =>
            isAuthenticated()
                ? <Component {...props} />
                : <I NEED TO REDIRECT FROM HERE TO SERVER PAGE />}
    />;

class App extends Component {
    render() {
        return (
            <BrowserRouter basename="/editor">
                <Switch>
                    <AuthenticatedRoute exact path="/" component={AppNav} />
                    <AuthenticatedRoute
                        exact
                        path="/:module"
                        component={AppNav}
                    />
                    <AuthenticatedRoute
                        exact
                        path="/:module/:screen"
                        component={AppNav}
                    />
                    <AuthenticatedRoute
                        exact
                        path="/:module/:screen/:action"
                        component={AppNav}
                    />
                    <AuthenticatedRoute
                        exact
                        path="/:module/:screen/:action/:id"
                        component={AppNav}
                    />

                    <Route component={PageNotFoundError} />
                </Switch>
            </BrowserRouter>
        );
    }
}

export default App;

正如您在代码中看到的,如果未通过身份验证,我想重定向到服务器页面。该页面是另一个管理用户注册的 React 应用程序,位于服务器中,但位于另一个路由树中:/registration

我尝试过但没有成功:

<Redirect to="//registration' />
windows.location = "/registration"
windows.location.href = "/registration"
<Redirect to="http//registration' />
windows.location = "http://registration"
windows.location.href = "http://registration"

所有重定向到当前应用程序中的页面。

对此的解决方案是什么?

阿姆阿里

我是这样实现的:

const AuthenticatedRoute = ({ component: Component, ...rest }) =>
    (<Route
        {...rest}
        render={props =>(
            isAuthenticated()
                ? (<Component {...props} />)
                : ( window.location = "http://your_full_url" )
        )}
    />);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在不使用重定向或链接的情况下更改react-router v4中的URL

如何使用React Router dom v4配置Webpack开发服务器?

使用React Router组件进行重定向

如何使用React Router V4从axios拦截器重定向?

如何使用react-router v4重定向到绝对路径?

使用参数进行React Router v4重定向

React Router v4重定向到当前页面,组件消失

重定向到登录时的上一个路径-React Router v4

React Router V4-警告:您试图重定向到当前使用的相同路由:“ / home / dashboard”

将道具传递到组件React Router V4

重定向到错误页面ReactJS和react-router

React Router v4-使用不同的查询参数重定向到同一路由

从react-router v4中具有路径参数的路由重定向

使用react-router-native V4重定向

将prop传递到react-router v4中的路由器组件

使用react-router v4重定向到嵌套路由

使用React Router v4的重复路由

使用重定向到登录页面但也有404 NotFound路由的React Router

子组件无法使用React Router v4渲染

使用React Router v4的React Hooks-如何重定向到另一条路由?

React Router (Dom) v4 在输入时重定向到不同的路由回车键

React Router (v4) 未在 componentDidUpdate() 中重定向

正确使用 react router v4

React router v4,将未知路由重定向到主页/根页面

如何使用 React Router v4 将错误路由重定向到特定页面

将 react-router 转换为 v4:重定向所有路由以包含 lang

React Router:重定向到不同的组件

使用 react-router-dom (v6) 成功登录后,Reactjs 重定向到仪表板页面

使用 React Router 中的参数重定向到父路由