首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ReactJS中应该如何处理经过身份验证和未经过身份验证的组件?

问在ReactJS中应该如何处理经过身份验证和未经过身份验证的组件?
EN

Stack Overflow用户
提问于 2020-10-11 03:00:38
回答 2查看 169关注 0票数 0

我正在使用React Redux为我的Express API构建一个用户界面,我想知道如何处理通过身份验证和未经身份验证的用户。有两个应用程序组件是一个好主意,一个用于经过身份验证和未经身份验证的用户-如果JWT在用户登录后成功调度到redux状态,这两个组件将有条件地呈现在主组件(app.js)中。这是处理问题的好方法还是坏方法?

EN

回答 2

Stack Overflow用户

发布于 2020-10-11 03:08:27

是的,为授权用户和未授权用户创建单独的组件是完全可以的。为什么不只创建一个组件并将值作为props传递,这样您就可以在单个组件中处理它呢?

票数 0
EN

Stack Overflow用户

发布于 2020-10-11 03:14:16

我建议在你的主要应用程序组件中使用私有和公共路由。

这个blog article给出了一个很好的解释。

使用context-api,您的privateRoute.js可能如下所示:

代码语言:javascript
复制
import React, { useContext } from 'react';
import { Route, Redirect } from 'react-router-dom';
import AuthContext from '../../context/auth/authContext';

const PrivateRoute = ({ component: Component, ...rest }) => {
  const authContext = useContext(AuthContext);
  const { isAuthenticated, loading } = authContext;
  return (
    <Route
      {...rest}
      render={props =>
        !isAuthenticated && !loading ? (
          <Redirect to='/login' />
        ) : (
          <Component {...props} />
        )
      }
    />
  );
};

export default PrivateRoute;

但是你必须从你的redux存储中查询AuthContext。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64297159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档