嗨,伙计们,我试着使用Refs并给出这个。setState
在其内部,但它给出:
超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。
我在做什么:
ref = {
(anchor) => this.setState({
anchor
})
} >
但当我使用时:
ref = {
(anchor) => this.state.anchor = anchor
} >
它的工作原理。
在其他组件中,我使用这个。setState
也很好,有人为什么?
1)参考不得作为组件状态的一部分存储。只需将它分配给组件的成员,如下所示:
<div ref={ x => this.anchor = x } />
2) 切勿直接修改组件的状态。没有这个.state.x = 什么
,使用 setState,以便 React 可以检测到更改并进行 UI 更新。
3) setState()
不能直接从渲染()
中调用(这会导致无限渲染循环)。
ref
是React中的一个特殊道具。安装组件时,React将使用DOM元素调用ref
回调,卸载时使用null
callback调用它ref更新发生在
componentDidMount
或componentDidUpdate
lifecycle挂钩之前。因此,在第一个示例中,当ref
props回调函数被执行时,在装载之前,您使用setState
更改
但是在第二种情况下,你直接改变了
状态
,这在 React 中永远不应该完成,当你通过直接改变状态来更新状态
时,它永远不会重新开始渲染。所以没有无限的召唤正在发生。它正常安装。
注意:< code>ref
不是改变状态的地方。< code>Refs提供了一种方法来访问在render方法中创建的DOM节点或React元素。根据文件。
希望有帮助。
我在React中运行我的应用程序时收到一个错误。这个错误有很多问题,但我不知道如何解决它。当我按下链接时,它会指向登录组件。“http://localhost:3000/login” 这是我在网站上得到的错误: “已超出最大更新深度。当组件重复调用组件内部的 setState 时,可能会发生这种情况“组件将更新”或“组件更新”。React 限制了嵌套更新的数量,以防止无限循环。 这是我的登录页面:
我得到了 错误:超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。 但我读到的内容应该能够在componentDidMount中调用setState而不会出错。 }
超过了最大更新深度。当组件重复调用组件WillUpdate或组件DidUpdate中的setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。 这是bossinfo.js 这是user.redux.js 你为什么一直报告这个问题?这是指向错误的方向吗?寻求帮助
问题内容: 我试图在ReactJS中切换组件的状态,但出现错误: 超过最大更新深度。当组件重复调用componentWillUpdate或componentDidUpdate内部的setState时,可能会发生这种情况。React限制了嵌套更新的数量,以防止无限循环。 我在代码中看不到无限循环,有人可以帮忙吗? ReactJS组件代码: 问题答案: 那是因为您在render方法中调用了toggle
我在代码中没有看到无限循环,有人能帮忙吗? ReactJS组件代码:
我正在用React做我的前几个实验,在这个组件中,我调用了一个外部API来获取所有NBA玩家的列表,通过作为组件道具接收的teamId过滤它们,最后呈现过滤玩家的标记。 一个需要考虑的问题是,由于我调用了API并获得了一个大列表,所以我将它保持在组件的状态,以便对该组件的新调用将使用该状态,而不是再次调用API。这不是生产代码,我没有API,所以我这样做是因为我收到了“太多请求”消息,因为我一直在