首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >响应“超过最大更新深度”。

响应“超过最大更新深度”。
EN

Stack Overflow用户
提问于 2019-02-22 12:45:24
回答 2查看 544关注 0票数 0

我有一个容器,它是一个子容器。这个子容器处理states,它还从父容器接收一些props。我有两个select语句,onChange在子容器中设置state。由于某些原因,setState()导致容器重新呈现。奇怪的是,render()和我的setState()代码只被调用一次。(我添加了调试器来检查)。请在下面找到我选择的组合框代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                <Select
                    native
                    name="evidenceNode"
                    value={nodeType}
                    onChange={this.handleChange('nodeType')}
                    className={classes.textField}
                >
                    <option />
                    {NODE_TYPE.map(function (item, i) {
                        return <option key={i} value={item}>{item}</option>
                    })}
                </Select>

                <Select
                    native
                    name="modelType"
                    value={modelType}
                    onChange={this.handleChange('modelType')}
                    className={classes.textField}
                >
                    <option />
                    {MODEL_TYPE.map(function (item, i) {
                        return <option key={i} value={item}>{item}</option>
                    })}
                </Select>

下面是我的handleChange函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
handleChange = name => event => {
    this.setState({
        [name]: event.target.value,
    });
};

我怀疑这是一个很小的解决办法,但我不知道我哪里出错了。

我尝试过的事情:

  1. 更改我调用句柄的方式,更改为箭头函数,但它没有工作
  2. 我删除了一个Select语句,然后再次尝试运行,它成功了。
  3. 我试图从其中一个Select语句中删除handleChange调用,它运行得很好。

我还应该提到:我有一个componentWillReceiveProps函数(不确定是否重要)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
componentWillReceiveProps(nextProps, nextContext) {
    if(nextProps.selectedNode !== this.state.selectedNode){
        this.setState({
            selectedNode: nextProps.selectedNode
        });
    }
}
EN

回答 2

Stack Overflow用户

发布于 2019-02-22 13:22:29

问题是onChange={this.handleChange('modelType')}

不是附加一个事件,而是用它调用一个方法。

正因为如此,你进入了一个无限循环。this.handleChange('modelType')发生重呈现,再次调用this.handleChange('modelType')...etc。

onChange事件上附加一个调用handleChange的匿名函数

onChange={e => this.handleChange('modelType', e)}

并更改handleChange参数声明:

handleChange = (name, event) => {}

票数 0
EN

Stack Overflow用户

发布于 2019-02-25 06:05:07

问题不在于handleChange侦听器。显然,Material-UI (我为表单元素使用的工具)要求我们在我添加的每个选择之上添加一个FormControl元素。所以组件应该是这样的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<FormControl
                // className={classes.formControl}
            >
                <Select
                    native
                    name="nodeType"
                    value={nodeType}
                    onChange={this.handleChange('nodeType')}
                    className={classes.textField}
                    inputProps={{
                        name: 'nodeType',
                        id: 'nodeType'
                    }}
                >
                    <option/>
                    {NODE_TYPE.map(function (item, i) {
                        return <option key={i} value={item}>{item}</option>
                    })}
                </Select>
            </FormControl>

我犯的错误是我有一个FormControl,它里面有两个选择元素。这个特别的东西并没有在他们的网站上有正确的记录。

我认为Material在表单控件中的每个Select上都递归地调用handleChange,而且由于我有多个组件,所以它进入了一个循环。我希望这能帮到你。

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

https://stackoverflow.com/questions/54834882

复制
相关文章
超过响应缓冲区限制[通俗易懂]
Response 对象 错误 ‘ASP 0251 : 80004005’
全栈程序员站长
2022/09/06
1.1K0
递归最大深度
题外话:由于递归深度可控,一般写类似递归的方法时尽量使用迭代器,例如Fibonacci数列,在python高级中我会把迭代器实现Fibonacci数列的方法贴出来,而不是用递归。 递归深度尽量不去修改,用起来也会很绕。下面我贴出来如何测试出本机递归深度: def func(num): if num == 1: return 1 else: return num * func(num-1) print(func(998)) # 这台机子的递归最大深度
汪凡
2018/05/29
6710
为什么说 Vue 的响应式更新比 React 快?(原理深度解析)
我们都知道 Vue 对于响应式属性的更新,只会精确更新依赖收集的当前组件,而不会递归的去更新子组件,这也是它性能强大的原因之一。
ssh_晨曦时梦见兮
2020/04/11
2.7K0
括号的最大嵌套深度
如果字符串满足以下条件之一,则可以称之为 有效括号字符串**(valid parentheses string**,可以简写为 VPS):
利刃大大
2023/04/12
2990
java 栈 最大深度理解
由此可以看出,局部变量表内容越多,栈帧越大,栈深度越小。 知道了栈深度,该怎么用呢?对JVM调优有什么用呢?
用户1205080
2019/01/23
1.6K0
React响应用户输入(持续更新) 原
课程地址:https://www.imooc.com/learn/953 一、数据逻辑与UI的结合  简单组件的内容 挂载节点 组件被浏览器加载之后被正确绘制在界面之上
晓歌
2018/08/15
4140
React响应用户输入(持续更新)
                                                                            原
通过代码WordPress文章超过N天未更新提示
方法:复制以下代码添加至文章页面Single.php 添加至合适的位置其中代码中的180为180天,可根据需要自行修改。
叮当叮
2020/04/20
1.1K0
通过代码WordPress文章超过N天未更新提示
深度优先遍历--最大的岛屿
问题描述:给定一个二维矩阵,0表示水,1表示陆地,一个岛屿是指相邻的上下左右的陆地面积,求最大的岛屿
西西嘛呦
2020/08/26
3430
今日头条超过腾讯新闻?或成为国内最大资讯平台
继BAT之后,TMD三个小巨头崛起了,其中这个T就指的是今日头条。通过几年的发展,今日头条已经成为国内最大的资讯平台之一。原本,今日头条落后于腾讯新闻。毕竟,腾讯新闻有微信每天的推送,每日都可以触达亿万用户。最近,根据极光大数据发布的《2018年Q1移动互联网行业数据研究报告》,今日头条以24.2%的渗透率位列第一,以微弱优势超过了腾讯新闻。在我的记忆中,这好像也是腾讯新闻首次被别的资讯APP超越。并且,根据极光大数据的报告显示:今日头条的DAU已经过亿,成为了名副其实的国民级应用。这下马化腾应该不高兴了吧!
光荣与梦想1987
2018/09/12
4K0
支持Python 3.10,Gym迎来史上最大更新
点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 机器之心报道 OpenAI 创建的 Gym 是开源的 Python 库,通过提供一个用于在学习算法和环境之间通信的标准 API 以及一组符合该 API 的标准环境,来开发和比较强化学习(DL)算法。自推出以来,Gym 的 API 已经成为了领域标准。 目前,在 Gym 的项目主页,Star 量已经达到了 26.6k。 项目地址:https://github.com/openai/gym 近日,Gym 迎来了迄今为止最大的更新,包括 A
昱良
2022/03/04
1.2K0
PowerBI 迎来史上最大更新:数据流
近日,PowerBI 推出【数据流】,有心的伙伴可以已经留意到该更新。而据 PowerBI总架构师 Amir Netz 称:
BI佐罗
2019/09/23
1.5K0
PowerBI 迎来史上最大更新:数据流
geotrellis使用(四十)优雅的处理请求超过最大层级数据
前言 要说清楚这个题目对我来说可能都不是一件简单的事情,我简单尝试。 研究 GIS 的人应该都清楚在 GIS 中最常用的技术是瓦片技术,无论是传统的栅格瓦片还是比较新颖的矢量瓦片,一旦将数据切好瓦片就会造成其层级固定,假如说 0 - 11 级,请求此层级范围内数据的时候能够正常响应,但是当用户请求超过最高级(假如为 12 )的时候该如何处理呢?传统方式只能返回 404 ,即显示空白数据,然而有没有更好的方式呢,能够使得用户在请求超过最高级数据的时候能够优雅的并且正确的返回数据而不是直接 404。这个问题可以
魏守峰
2018/05/02
8800
geotrellis使用(四十)优雅的处理请求超过最大层级数据
Vue2剥丝抽茧-响应式系统之深度响应
接 Vue2剥丝抽茧-响应式系统、Vue2剥丝抽茧-响应式系统之分支切换,响应式系统之嵌套 还没有看过的同学需要看一下。
windliang
2022/08/20
2530
Vue2剥丝抽茧-响应式系统之深度响应
leetcode之括号的最大嵌套深度
这里用stack来匹配括号,对于左括号执行进栈操作,对于右括号先计算最大的深度,然后再出栈。
code4it
2020/10/28
1.2K0
leetcode之括号的最大嵌套深度
二叉树最大深度
思路:每一次把当前层的节点都放入队列中,记录当前层上存在几个节点,然后再次进行循环,把队列中的元素挨个出队,每有一个元素出队,就判断他有没有左右子树,如果有就把左右子树的节点放入队列中,队列中元素出队个数就是记录当前层数上的节点个数。没当一层上的节点都出队完,就相当于此树存在一层,用一个变量记录层数。
大忽悠爱学习
2021/04/01
2960
二叉树最大深度
PHP上传文件超过文件最大限制导致无法上传成功
     最近在学习《HeadFirst PHP & MySQL》一书的第5章“使用存储在文件中的数据”,做一个文件上传的应用时,出现了错误,就是文件无法成功上传。这个问题困扰了我很久,不过还好最后终于解决了。原因是我上传的图片文件大小超过了HTML 表单中MAX_FILE_SIZE 选项指定的值32768Bytes即32KB导致无法上传成功。
ccf19881030
2019/04/24
1.9K0
PHP上传文件超过文件最大限制导致无法上传成功
Python的最大递归深度错误 “max
  今天在写爬虫的时候,发现了一个事情,使用str方法强制转换一个BeautifulSoup对象成字符串的时候报错了,提示是“maximum recursion depth exceeded while calling a Python object”,意思大致是“当调用该对象超过最大递归深度”
py3study
2020/01/08
1.4K0
LeetCode - N叉树的最大深度
这题是LeetCode第559题,求N叉树的最大深度,难度为简单,两月以前的做的一题。
晓痴
2019/07/24
5980
LeetCode - N叉树的最大深度
leetcode之括号的最大嵌套深度
这里用stack来匹配括号,对于左括号执行进栈操作,对于右括号先计算最大的深度,然后再出栈。
code4it
2020/11/02
3110
点击加载更多

相似问题

响应错误最大更新深度超过

31

响应js,最大更新深度超过

10

错误响应:超过最大更新深度

13

响应JS钩子-最大更新深度超过

34

响应:长度验证,最大更新深度超过

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文