文章目录

  • 一、报错语句是什么意思?
  • 二、复现步骤,及其改法
    • 1.错误代码
    • 2.修改方式
    • 3.报错原因
    • 4.bind(this,data)
  • 总结

一、报错语句是什么意思?

Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.
错误:重新渲染过多。React限制渲染的数量以防止无限循环。

二、复现步骤,及其改法

1.错误代码

代码如下(示例):

  const handlePreview = (url) => {setIsModalVisible(true)setPreviewUrl(url)}return (<div className="img-item" key={index}><imgstyle={{ width: "100%", height: "100%" }}src={item.url}alt={item.name}onClick={handlePreview(item.url)}/></div>);

2.修改方式

代码如下(示例):

  const handlePreview = (url) => {setIsModalVisible(true)setPreviewUrl(url)}return (<div className="img-item" key={index}>method===1?// 方法(1)<imgstyle={{ width: "100%", height: "100%" }}src={item.url}alt={item.name}onClick={()=>handlePreview(item.url)}/>:// 方法(2)<imgstyle={{ width: "100%", height: "100%" }}src={item.url}alt={item.name}onClick={handlePreview.bind(this,item.url)}/></div>);

3.报错原因

在react中 handlePreview(item.url)会直接执行,不是点击触发

4.bind(this,data)

语法:
fun.bind(thisArg[, arg1[, arg2[, …]]])
thisArg 当绑定函数被调用时,该参数会作为原函数运行时的 this 指向。当使用 new 操作符调用绑定函数时,该参数无效。
arg1, arg2, … (可选)当绑定函数被调用时,这些参数加上绑定函数本身的参数会按照顺序作为原函数运行时的参数。

bind后的this指向的是上下文,也就是这个组件,这个组件才有你所需要的方法,不懂没关系看代码↓

 this.all = '外部'var obj = {all:'内部',cb:function(){console.log(this.all)}}obj.cb();                         //  内部var out = obj.cb;out();                            //  外部var internal = out.bind(obj)internal();                       //  内部

总结

 可以采用箭头函数的方式,也可以采用bind()的方式解决此报错。有时间可以私下拓展一下bind()其他用法。

react报错Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.相关推荐

  1. Too many re-renders. React limits the number of renderers to prevent an infinite loop...

    原因:页面刷新进入了死循环,导致页面崩溃!  然后白屏了,,, 场景描述: 页面是一个 ip 区间,在区间后面显示  一组数据是否都存在区间内的,都存在显示 √,部分存在显示 ×,并显示不存在区间内的 ...

  2. React 报错 Error: useRoutes() may be used only in the context of a <Router> component

    使用react-router-dom V6 发生报错,找了一会才解决,做个记录 报错意思:大概就是要给路由提供一个上下文 报错原因,一开始我是把 BrowserRouter 放到 App.js 文件中 ...

  3. React报错 Too many re-renders

    Too many re-renders. React limits the number of renderers to prevent an infinite loop 这种情况你要检查更新Stat ...

  4. React报错:Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.

    前言 在今晚用React的Hook写页面的时候,在写一个tab栏,然后要点击切换不同的tab,然后出现了一个报错: Error: Too many re-renders. React limits t ...

  5. 启动react项目时失败,报错Error: Cannot find module

    拷贝react项目到本地 npm run 运行项目时,报错Error: Cannot find module - 解决办法:一次性安装模块 sudo npm i 或者 先安装yarn,利用yarn安装 ...

  6. React报错:Too many re-renders

    React报错:Too many re-renders. React limits the number of renders to prevent an infinite loop. Too man ...

  7. npm start报错Error: error:0308010C:digital envelope routines::unsupported

    (41条消息) npm run dev 报错:Error: error:0308010C:digital envelope routines::unsupported_爱的叹息的博客-CSDN博客 n ...

  8. 配置eslint+prettier报错Error: Cannot read config file: /Users/qiandingwei/Documents/projects/creams-main

    安装eslint和prettier后出现如下报错 Error: Cannot read config file: /Users/qiandingwei/Documents/projects/cream ...

  9. Flex报错Error #2048: 安全沙箱冲突

    Flex+JPA架构,JPA程序迁移,从A服务器到B.其他一切没变,唯一变的就是IP. 前端Flex也就是swf报错Error #2048: 安全沙箱冲突:http://xxx.swf 不能从 xxx ...

最新文章

  1. 调查用QQ企业邮箱的smtp需要添加spf1
  2. php函数scandir_使用PHP函数scandir排除特定目录
  3. 三相逆变器双pi控制器参数如何调节_Boost 变换器 PI参数设计举例
  4. codevs——1044 拦截导弹(序列DP)
  5. 【转】Windows XP打印共享四大问题及解决方法
  6. LSI加入多核联盟参与编程与应用标准制定
  7. 初学java网络编程的一些总结
  8. python回归算法预测数据_python逻辑回归算法预测
  9. 怎么用符号连接list 或者set,形成字符串
  10. 接口做的好怎么形容_游戏耳机怎么选?入耳式游戏耳机测评+游戏音频指南
  11. android 仿QQ表情,长按查看动图,移动手指可切换图片
  12. VirtualBox下ubuntu和本机win7共享文件夹
  13. 近千万EOS被盗事件回顾,大家请保护好自己的EOS私钥
  14. 换元积分法和分部积分法
  15. [蓝牙] 1、蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)
  16. 【域自适应】Dual Path Learning for Domain Adaptation of Semantic Segmentation
  17. 爬取沪江网考研词汇并按要求存为txt
  18. Linguistic Data Consortium (LDC) 介绍
  19. 2021计算机科学与技术毕业论文,关于计算机科学与技术学院2021届本科生毕业论文(设计)知网检测的通知...
  20. 翁恺老师——指针变量和输入地址的变量

热门文章

  1. [苹果开发者账号]02 申请苹果开发者账号 快速申请邓白氏编码DUNS(提示:抱歉,您暂时不能注册)
  2. 【Javascript】【视频录制】通过video标签和canvas实现视频截图录制和下载
  3. /,./和../的区别
  4. 单号查询方法,怎么查快递物流到哪里了
  5. 2021/1/16-每日三题第23弹:skr小机灵鬼儿 ?你知道 JavaScript 中的原型和原型链是什么吗 ???
  6. DNS 缓存查看以及清除(转载)
  7. 输入上/下标数字以及字母
  8. HDMI转mipiCSI+Audio,东芝,TC358743,视频转换芯片
  9. 蓝桥杯评分标准_第十届蓝桥杯软件个人赛校内选拔赛评分标准和选拔标准.doc...
  10. 欢迎来到大数据时代-----赶快来了解一些大数据的基础知识