我在React中使用了一个函数组件,当我使用useState钩子在返回中设置一个值时,我收到一个关于Maximum update depth exceeded的错误。
代码如下:
const TaskDetail = (props) => {
const [selectedOperatorForTime, setSelectedOperatorForTime] = useState({})
return (
<div >
<Query query={GET_API_VAL}>
{({ loading, error, data }) => {
let operatorList = {key1: data.value1, key2: data.value2}
setSelectedOperatorForTime(operatorList);
{//rest of the code}
我得到以下错误
Unhandled Rejection (Error): Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
我尝试将 setState 放在一个单独的函数中,而不是直接在返回中使用它,但我仍然看到相同的错误。有什么指导吗?我正在使用阿波罗客户端(这就是查询组件的用途。不确定我是如何导致这个被反复调用的。
我尝试用字符串替换操作员列表,它运行良好。所以这似乎是对象的问题。有人经历过吗?
如果您使用的是反应钩子,那么您也可以使用这里记录的apollo反应钩子。
您可以在组件顶部使用useQuery
,而不是在JSX中使用Query
组件,如下所示:
const { loading, error, data } = useQuery(GET_API_VAL);
这也可能消除对单独useState
的需要,因为它始终包含当前数据。
您的具体示例(没有其他更改)如下所示:
const TaskDetail = (props) => {
const [selectedOperatorForTime, setSelectedOperatorForTime] = useState({});
const { loading, error, data } = useQuery(GET_API_VAL);
useEffect(() => {
// Set selectedOperatorForTime whenever the data changes
let operatorList = {key1: data.value1, key2: data.value2};
setSelectedOperatorForTime(operatorList);
}, [data]);
return (
<div >
{//rest of the code}
我试图在参数更改时映射我的 redux 数组。它按预期呈现,但我在控制台中收到此错误。尝试了一些对useeffect的依赖性,但无法修复它。不知道为什么会发生这种情况。感谢您的帮助。 错误; 超过最大更新深度。当组件在useEffect中调用setState时,可能会发生这种情况,但useEfect要么没有依赖项数组,要么在每次渲染时都会更改其中一个依赖项。 我的代码;
当我运行我的代码时,我收到了这个错误。 超过了最大更新深度。当组件重复调用组件WillUpdate或组件DidUpdate中的setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。 这是代码。它在引用。 我按照React网站上的文章所说的方式设置了我的东西,它“来了”于这个简洁的控制台类型,这就是我产生上述代码的地方。我对React、JSX和Javascript(以及
我试图更新用户配置文件图像,但得到错误 超过了最大更新深度。当组件重复调用组件WillUpdate或组件DidUpdate中的setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。 这是我的代码。 有人能告诉我这是怎么回事吗?
我正在使用FullCalendar进行反应,我正在与状态作斗争……它返回以下消息: 错误:超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。 我删除了代码中所有不必要的部分。 如果您想让我提供更多信息,请告诉我。欢迎任何反馈/想法!谢谢
这是我的一段代码: 但这给了我错误,说超过了最大更新深度。当组件重复调用组件内部的 setState 时,可能会发生这种情况“组件将更新”或“组件更新”。React 限制嵌套更新的数量,以防止无限循环。 这是一个快照: 我该如何解决这个问题?
我有这个错误:错误:超过最大更新深度。当组件重复调用componentWillUpdate或componentDidUpdate内部的setState时,会发生这种情况。React限制嵌套更新的数量,以防止无限循环。 但是我不明白怎么解决!我只是在发布我的代码,对不起… 我的代码: