React onChange 处理程序在页面加载期间被多次调用

2023-11-26

我们正在尝试添加一个onChange我们的自定义组件之一的处理程序 - 即Checkbox组件(它是自定义组件的唯一原因是我们可以有效地封装intermediateHTML 属性)。它看起来像这样:

<Checkbox
  id="select-all"
  onChange={this.handleSelectAllChange(ids)}
  indeterminate={isIndeterminate}
  checked={areVisibleItemsSelected}
  disabled={isDisabled}
/>

处理函数的结构有点像这样:

handleSelectAllChange(ids) {
  // omitted code that filters on ids and produces newIds

  this.props.updateIds(newIds);
}

Where this.props.updateIds是一个修改父组件状态的传递函数。

问题是这个函数在页面加载期间被调用了大约 10 次,这不是我们想要的。我认为只有在修改实际复选框元素时才会调用它?


通过这样声明onChange={this.handleSelectAllChange(ids)}方法调用在渲染时立即发生CheckBox。使用 ES6,你可以通过使用来避免这种情况

onChange={() => this.handleSelectAllChange(ids)}

这意味着您传递了一个新函数,该函数将调用handleSelectAllChange关于改变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React onChange 处理程序在页面加载期间被多次调用 的相关文章

  • Chrome DevTools:计算样式与 css 规则不同?

    当我在 CSS 文件中定义 4px 时 我的 DOM 元素的 border top width 怎么可能是 0px 当我使用 Chrome DevTools 检查元素时 我发现计算的样式告诉 0px 而最上面的 css 规则是 4px 而且
  • jQuery 数据与 Attr?

    两者的用法有什么区别 data and attr使用时data someAttribute 我的理解是 data存储在 jQuery 中 cache 而不是 DOM 因此 如果我想使用 cache对于数据存储 我应该使用 data 如果我想
  • SharePoint

    我的 SharePoint 网站上有一个 aspx 页面 其中包含了标签 由于某种原因 页面上的每个按钮在单击时都会重新加载页面 即使没有属性 id class 等 或功能的按钮在单击时也会重新加载页面 我该如何解决这个问题 我什至看不到调
  • 使用 Objective-C 将 HTML 文本转换为纯文本

    我有巨大的NSString里面有 HTML 文本 该字符串的长度超过 3 500 000 个字符 我怎样才能将此 HTML 文本转换为NSString里面有纯文本 我正在使用扫描仪 但它运行速度太慢 任何想法 这取决于您的目标 iOS 版本
  • 如何隐藏其他选项卡的内容并仅显示所选选项卡的内容

    当我单击特定选项卡时 其他选项卡的内容应该隐藏 但它并没有隐藏 这是我所有的代码 function showStuff id if document getElementById id style display block documen
  • ASP.Net 控件的 InnerHTML 和 InnerText 属性之间的区别?

    例如 在使用 ASP NET 控件时 h1 text h1 如果我们想更改标题的文本 我们可以通过两个属性来完成InnerHTML and InnerText 我想知道这两个属性之间的基本区别是什么 InnerHtml让您直接输入 HTML
  • 获取点击元素的 HTML 内容 jQuery

    我有以下 HTML
  • 设置overflow-y可见,而overflow-x为auto,以便内容可以垂直溢出父容器

    我在用着position absolute and position relative如果将其父级悬停在图像上 则在图像上显示文本 文本和图像父 div 所在的容器设置为overflow x auto 使其具有水平滚动条 我想要看起来垂直溢
  • 将 html 转换为 pdf 时防止表格单元格跨页破坏

    使用 Google Apps 脚本 我有一个 html 模板 我填写该模板 然后以 pdf 形式发送 通过传真和 或电子邮件 该模板包括一个带有问题 答案的两列表格 如果行数足够多 表格会在pdf中跨页分页 并且分页符通常发生在单元格的中间
  • javascript中怪异模式的元素宽度?

    我一直在浏览所有流行的 js 库 但我找不到一个具有 DOM 元素宽度函数的库 该函数实际上可以解释 Internet Explorer 中的怪异模式 问题是 当启用怪异模式时 填充和边框不会计入宽度 据我所知 当省略 doctype 或将
  • 使用JQuery检查元素是否有边框?

    所以我正在玩 el css 尝试确定元素是否有边框 我用 css border style solid 设置边框 这是可行的 但实际上它设置了 4 种单独的样式 border right style border left style bo
  • 如何仅使用CSS设置某个角的边框半径

    如上所示 我可以只给顶部部分而不给底部提供半径 或者有时给底部而不是顶部提供半径吗 有没有办法只给一个角提供边界半径 Like border radius top left top right bottom right bottom lef
  • 通过 Javascript 将图像切割成碎片

    我正在创建一个简单的拼图游戏 为了做到这一点 我需要将我正在使用的图片切成 20 块 Javascript 有没有办法将一张图片切成 20 个相等的部分 并将它们保存为网页中的 20 个不同的对象 或者我只需要进入 Photoshop 自己
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • 如何创建自定义元素扩展类的新实例

    我正在尝试以下示例谷歌开发者网站 https developers google com web fundamentals getting started primers customelements extendhtml我收到错误 Typ
  • 显示表中的记录

    我的第一个 PHP 项目遇到了一些麻烦 我试图从 MySQL 数据库 有 3 条记录 获取数据并将其显示在表格中 问题是它似乎只显示记录 2 和 3 它跳过了第 1 条记录 请参阅我的代码并在下面显示 if mysqli connect e
  • Nextjs 无法在生产环境中的“.next”目录中找到有效的构建

    我正在 docker 中运行我的应用程序 但我的生产构建和启动脚本仅在 docker 环境中失败 虽然node env开发在docker环境下运行良好 这是我的脚本 无法进行生产构建并启动服务器 我正在使用nodemon和babel bui
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • React + Semantic-UI:在 UI MODAL 中使用表单

    在没有 React 的普通旧 Semantic UI 中 我已经能够毫无问题地将表单放入 Modal 中 使用 Semantic UI React 版本 我能够在模态中显示表单 但它并没有按照我期望的方式工作 例如 模态框显示后 模态框内的
  • 为什么我的图像下方有空间? [复制]

    这个问题在这里已经有答案了 图像在下面获得了神秘的空白空间 即使padding 0 margin 0被应用 示范 http jsfiddle net cLETP 红色边框应该包围图像 但底部有空间 造成这种情况的原因是什么 如何删除该空间

随机推荐

  • Android 中 SVG 和 VectorDrawable 的区别

    虽然Android支持SVG 但为什么要转换为VectorDrawable 此代码示例显示 Android 中的 SVG SVG svg SVGParser getSVGFromResource getResources R raw and
  • 在 Rest API 中使用 Facebook 维护 Express 和 NodeJS 中 JWT 的密钥和访问令牌

    我有两个应用程序 server REST API Server node js Express jsonwebtokens 快递 jwt mongoose client Portable Front end 引导程序 角JS 本地存储 角度
  • 使用 webpack 将 jQuery 包含在 Angular2 中并从组件访问它

    我想将 jQuery 和 SignalR 包含在我的 Angular2 应用程序中 并使用 webpack 连接所有内容 因此我通过 npm 安装了 jQuery 包 json dependencies jquery 2 1 4 文件和文件
  • Ubuntu 上的 Java 安装问题

    尝试在我的新 Ubuntu 系统上安装 Java JDK 6 并遇到一些奇怪的错误 这是我第一次使用anyLinux 的风格 所以我确信这是一个用户问题 权限或其他 我直接从 Oracle 网站下载了 BIN 文件 适用于 64 位 Lin
  • 使用 Facebook API 获取封面照片

    在我的 Android 应用程序中 我试图从用户的 Facebook 帐户获取他的封面照片 我可以使用下面的代码获取个人资料图片 profilePicUrl new URL http graph facebook com userId pi
  • python - 从自身内部调用函数

    我已经拥有的代码用于接收数学表达式并计算它的机器人 现在我让它做乘法 除法 减法和加法 但问题是我想建立对括号和括号内括号的支持 为此 我需要首先针对括号内的表达式运行我为不带括号的表达式编写的代码 我本来打算检查一下 并将其中的表达式附加
  • 什么是方法、属性和函数?

    是的 我正在为此苦苦挣扎 我无法区分它们 因为我读到的每一个解释都是如此不清楚且足够哲学 有人可以帮我澄清这些定义吗 多谢你们 这些定义与 oop 一样适用于过程编程 谢谢 随着时间的推移 人们使用这些术语的方式已经发生了变化 并且可能会不
  • 使用 icomoon 从 svg Figma 图标生成字体时自动填充颜色

    我想将 svg 转换为图标字体我的 HTML CSS 中的元素使用爱可梦应用程序
  • MySQL 中的存储过程与触发器

    在 MySQL 世界中 存储过程与触发器有何不同 存储过程存储为预编译代码 存储例程 并由程序员在想要触发的任何地方调用 存储过程可以返回值 关于程序和功能 触发器是在发生插入 删除 更新 或其他事件 时自动触发的命名数据库对象 不能显式调
  • bash 在循环中分配给数组索引时遇到问题

    我可以让它在 ksh 中工作 但不能在 bash 中工作 这真的让我发疯 希望这是我忽略的显而易见的事情 我需要运行一个外部命令 其中输出的每一行都将存储在数组索引中 这个简化的示例看起来像是在循环中正确设置了数组 但是在循环完成后 这些数
  • 如何将 Json 字符串转换为 NSArray? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我目前正在尝试将一些对象的 JSON 表示形式转换为NSArray 我用了Res
  • 新的 cassandra 节点无法使用种子进行八卦

    我正在尝试使用 cassandra 2 0 7 启动一个新节点 两个节点均位于 Digital Ocean 种子节点已启动并正在运行 我可以从我尝试启动的节点远程登录到该主机上的端口 7000 root cassandra02 apache
  • pydev 调试器:在 OS 10.8 升级后无法找到 python 2.7 的真实位置

    我刚刚升级到 OS X 10 8 Mountain Lion 但无法理解 pydev 调试器如何在 Aptana 3 0 上工作 在 Aptana 的首选项中 我将 python 解释器设置为 usr bin python 它指出系统库来自
  • Object.GetType() 可以返回 null 吗?

    只是好奇 有什么时间打电话吗 GetType 对象上会返回 null 假设用途 public Type MyMethod object myObject return myObject GetType 对象上的 GetType 永远不会返回
  • 编译具有相同目标的不同子项目时出现 CMP0002 错误

    我有很多子文件夹 home library1 library2 libraryn 每个子文件夹都包含一个可以自行编译的完整库 每个库都有不同的维护器 到目前为止 它工作正常 并且我使用脚本编译它们 现在我需要创建另一个库 它依赖于现有的库
  • 如何使用 Linq 写入 Excel 电子表格?

    我正在编写一个应用程序 需要从数据库中检索一些行并将它们转储到 Excel 电子表格中 我正在使用 Linq 来检索这些行 是否可以将这些行直接转储到 Excel 工作表中的对应行 其中 Excel 中的一个单元格对应于数据库中的一个单元格
  • Primefaces 验证码消失或不更新/刷新无效输入?

    我有以下一段代码h form
  • php8.2 找不到 Redis.dll

    我在 Windows 计算机上使用 PHP 8 2 启动 Redis 5 3 7 时遇到困难 当我尝试启动它时 会显示一个对话框 其中包含以下消息 无法在动态链接库c Program Files php ext php redis dll中
  • jdk1.7的javac在没有-cp选项的情况下找不到javafx jar

    我在这个网站和其他地方读过几个问题 这些问题表明安装 Oracle JDK7 时 不需要指定 jfxrt jar 的类路径当JDK正确安装时 不幸的是 我的安装似乎不正确 但我无法找出问题所在 我为 Red Hat Enterprise L
  • React onChange 处理程序在页面加载期间被多次调用

    我们正在尝试添加一个onChange我们的自定义组件之一的处理程序 即Checkbox组件 它是自定义组件的唯一原因是我们可以有效地封装intermediateHTML 属性 它看起来像这样