我有一个代码示例,我在其中尝试重定向尚未登录的用户。我正在使用外部身份验证,以发送用户通过第三方身份验证系统登录。我知道react-routes具有Redirect
选项,并且我知道它们仅重定向到路径名。有没有一种方法可以使重定向window.assign
发生,从而将用户立即重定向到另一个页面?
提前谢谢!
const ProtectedRoute = (auth, component: Component, ...rest) => {
return <Route
{...rest}
render={props => auth.isAuthenticated()
? <Component {...props} />
: <Redirect
to={{
pathname: 'http://example.com/',
state: { from: props.location },
}}
/>
}
/>;
};
答案 0 :(得分:2)
您可以在组件的componentDidMount
挂钩中评估日志记录道具,并使用window.location重定向到完全不同的URL。例如:
componentDidMount() {
if(auth.isAuthenticated()) {
return <Component {...props} />
}
window.location.assign('http://example.com/');
}