javascript - 当我尝试设置私有路由来处理 firebase 身份验证时出现此错误
问题描述
错误:超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。React 限制了嵌套更新的数量以防止无限循环。
我的 PrivateRoute 组件中的代码:
import React, { useContext } from 'react';
import { Redirect, Route } from 'react-router';
import { UserContext } from '../App';
const PrivateRoute = ({ children, ...rest }) => {
const [loggedInUser, setLoggedInUser] = useContext(UserContext);
return (
<Route
{...rest}
render={({ location }) =>
loggedInUser.email ? (
children
) : (
<Redirect
to={{
pathname: "/login",
state: { from: location }
}}
/>
)
}
/>
);
};
export default PrivateRoute;
解决方案
推荐阅读
- python-3.x - 在 Spacy 中查找开始和结束字符索引
- java - 使用 Hibernate 和 JPA 在 Postgresql 数据库中插入链接实体时引发 SqlExceptionHelper
- autodesk-forge - Forge Viewer 如何计算 globalOffset?
- python - 以有效的方式找到最佳候选人,Django
- ssl - 哪些隐藏配置可以仅使用来自 Kafka 集群的 CA 信息启用 TLS 通信?
- sql-server - 使用多个更新或内部连接对性能更好
- azure - 在 Azure AD 中使用电子邮件字段批量创建用户
- jdbc - 使用 UserDefined JDBC 提供程序通过 wsadmin 创建数据源时,不会出现数据源的自定义属性(J2EEResourcePropertySet)
- react-native - 使用可重用函数组件反应原生条件样式 onFocus onBlur
- python - YOLO v4 边界框和标签排序