Javascript 防止组件在经过身份验证后显示
我有一个登录流。所有设置都正确,一旦通过身份验证,它会将用户重定向到Javascript 防止组件在经过身份验证后显示,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我有一个登录流。所有设置都正确,一旦通过身份验证,它会将用户重定向到“/” 我当前的问题是,当它们经过身份验证并键入/login时,它将简要显示登录组件,然后重定向回“/” 如何显示正在加载的组件,或者在经过身份验证后不显示Login.js App.js <Switch> <PrivateRoute exact path="/" component={Home} /> <Route path="/login" component={Login} />
“/”
我当前的问题是,当它们经过身份验证并键入/login
时,它将简要显示登录组件,然后重定向回“/”
如何显示正在加载的组件,或者在经过身份验证后不显示Login.js
App.js
<Switch>
<PrivateRoute exact path="/" component={Home} />
<Route path="/login" component={Login} />
</Switch>
我通过使用我的
IsAuthentication?:代码>在我的登录组件中您可能需要一些状态,如“IsAuthentication”,它最初为false,然后在身份验证期间变为true,完成后变为false(失败或未成功)。然后可以将其传递给有条件呈现的加载程序组件。我在redux中也有IsAuthentication道具,但不确定在用户尝试点击/登录时如何组合。正常情况下,当用户按下登录按钮时,IsAuthentication
,不是在访问路线时。这是由于未解决的承诺,我使用react-loadable
解决了问题,现在已弃用,请查看!啊,在路由器组件中添加loadable
功能,然后在路由中使用可加载的处理组件。你试过这个吗
useEffect(() => {
if (isAuthenticated) history.push("/");
});