ReactTestUtils.Simulate 无法通过 addEventListener 触发事件绑定?

2024-02-01

这是示例:

http://jsfiddle.net/hulufei/twr4thuh/7/ http://jsfiddle.net/hulufei/twr4thuh/7/

绑定时才起作用onClick在虚拟 dom 中(如第 18 行),但是如果我注释第 18 行并注释第 8 行以绑定单击addEventListener,失败了。

所以有什么问题?


TestUtils 触发 React 合成事件系统中的事件,因此本机事件addEventListener监听永远不会被触发。您将需要使用本机click测试中元素的方法:

    var events = Events();
    ReactTestUtils.renderIntoDocument(events);
    events.refs.button.getDOMNode().click();

    events.state.event.should.equal('click');

另外,你还写错了clickHandler在你的addEventListener定义。

jsfiddle http://jsfiddle.net/57t19sa6/2/

您还可以通过重用 prop 定义来简化添加事件侦听器:

componentDidMount: function () {
    this.refs.button.getDOMNode().addEventListener('click', this.clickHandler);
},

Note:

您有理由想要使用addEventListener而不是仅仅传递一个onClick你的按钮的属性?除非有具体且充分的理由,否则我建议在处理事件时以反应方式进行操作以保持理智:)

Edit

我最初提到我不知道 TestUtils 是什么SimulateNative.click https://github.com/facebook/react/blob/006bc28633d1bca028240133934adb4a6dcf5d5f/src/test/ReactTestUtils.js#L417没有触发事件。我错误地认为它会发生,因为它将模拟反应甚至系统中的本机点击事件。 @thilo 为我指出了正确的方向:)

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

ReactTestUtils.Simulate 无法通过 addEventListener 触发事件绑定? 的相关文章

  • 如何在每个测试中更改笑话模拟函数的返回值?

    我的组件测试文件中有一个像这样的模拟模块 jest mock magic index gt navigationEnabled gt true guidanceEnabled gt true 这些函数将在我的组件的渲染函数中调用 以隐藏和显
  • Symfony2 功能测试会话持久性

    我正在尝试在 Symfony 中进行一些功能测试 但目前我的会话遇到了问题 我执行了一段代码 它似乎有效 但容器的会话中没有存储任何内容 我有一个表格 您可以在其中设置数据 当您提交它时 它会检查值并将其存储在会话中 然后它重定向到另一个页
  • ReactTable 修复了最后一行

    我正在使用 ReactTable 最后我需要创建一些摘要 当分页存在时 它每次都应该可见 可以用react table来实现吗 我可以通过创建下一个表来部分解决这个问题 但我没有找到如何隐藏标题的方法 另一个问题是调整列宽度时 它不会应用于
  • React 不响应按键事件

    我正在尝试实现一些非常基本的按键检测 但我根本无法让它工作 我有一个裸露的组件 应该在onKeyDown事件 但控制台中没有任何内容被注销 class App extends React Component constructor prop
  • Laravel 集成测试:如何断言一个 URL 已被调用但另一个 URL 没有

    我想测试一个向某个 URL 发出请求的控制器 例如 http example com api say hello 但它不会向另一个 URL 发出请求 例如 http example com api say bye bye 我想测试的控制器功
  • Menu.Item 中的 Antd 自动换行

    可以在 Menu Item 组件中应用自动换行吗 示例不起作用
  • React + Semantic-UI:在 UI MODAL 中使用表单

    在没有 React 的普通旧 Semantic UI 中 我已经能够毫无问题地将表单放入 Modal 中 使用 Semantic UI React 版本 我能够在模态中显示表单 但它并没有按照我期望的方式工作 例如 模态框显示后 模态框内的
  • Material UI - 更改主题中的按钮文本颜色

    我在直接在 Material UI 主题中更改按钮文本颜色时遇到问题 更改主色 按钮字体大小效果很好 因此问题不在于传递主题 这是我的代码 import React from react import MuiThemeProvider cr
  • React Router v4 的优点

    除了能够在 NavLink 上设置 activeClassName 和 activeStyle 之外 还有什么理由使用NavLink over Link在您的网站上不需要活动状态 类的非导航元素 即不是页眉或页脚中的主导航 上创建指向其他路
  • Vue中有类似React.Fragment的东西吗?

    在 React 中我可以做这样的事情 parent component export default return div div 1 div div
  • 如何在量角器中模拟拖放动作?

    我有一个双滑块 我想测试它是否可操作并返回正确的数据 滑块有一个最小和一个最大处理程序 它还有一些 我可以挂钩的断点 我想要模拟的是 handler max 元素的 touchStart 将拇指移动到类为 step 3 的元素上 handl
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • 如何从 Chrome React Dev Tools 打开 VS code 中的组件文件?

    是否可以右键单击 React Dev 工具下可见的组件 然后单击 在 IDE 中显示 从而在 VSCode 中打开该文件 这将是有益的 因为我不必去寻找该组件 我经常想在 VS Code 中查看某个组件的源代码 但由于组件的模块化复用 代码
  • 在react中使用map方法渲染JSON API

    我对 JSON 对象 数组和映射方法的语法和结构有困难 我是 React 新手 正处于学习的初始阶段 这是我粘贴在下面的 JSON 文件代码 cloud Asia availability last15Min 100 last24Hour
  • 是否有保留用于测试/示例的社会安全号码?

    是否有一个按惯例使用的规范 测试 SSN 因此所有看到它的人都知道它不是真正的 SSN 有多个号码组和一些永远不会被分配的特定号码 数字与任何数字组中的所有零 000 xx 00 xx 0000 http www ssa gov histo
  • Golang中如何获得100%的代码覆盖率? [复制]

    这个问题在这里已经有答案了 我无法获得 100 的代码覆盖率 因为我无法在 Golang 中测试 Fatals 我发现了一些问答 包括this one https stackoverflow com questions 30688554 h
  • 卸载 React 时删除事件监听器

    我有更高阶的组件 反应如下 export default function InnerComponent class InfiniteScrolling extends React Component constructor props s
  • 如何让 Django 和 ReactJS 协同工作?

    New to Django and even newer to ReactJS I have been looking into AngularJS and ReactJS but decided on ReactJS It seemed
  • Cypress 在 Create React App 中返回 .scss 文件的 webpack 编译错误

    我正在尝试将 Cypress 添加到非常基本的 CRA 但遇到了 Cypress 无法理解 scss 文件的问题 当我跑步时npm run cypress运行测试 我收到以下错误 Error Webpack Compilation Erro
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐

  • 将多个变量传递给内容脚本 chrome

    我正在编写我的第一个 chrome 扩展 几个小时前才开始 当硬编码时一切都运行良好 本质上 我正在填写一份 8 页的表格 表单的每个页面对应一个单独的内容脚本 内容脚本过去看起来像这样 查找字段有点困难 因为它们不是标准的 但我并不担心
  • 按照惯例,Java .class 文件存储在哪里?

    我有一个 Java src 文件夹 在其中存储 java 文件 然后 我使用终端编译它们 并最终在同一目录中获取 class 文件 这不一定会困扰我 但我从未见过专业人士这样做过 按照专业惯例 如果存在 应将编译后的 class 文件存储在
  • 如何在flutter中实现自定义对话框?

    我是 flutter 新手 需要创建一个图库应用程序 该应用程序需要自定义对话框来显示所选图像 我怎样才能实现呢 使用 Flutter 中 AlertDialog 类的父类 Dialog 类 对话框小部件有一个参数 shape 您可以使用它
  • MATLAB - 具有布尔值的棘手颂歌系统

    编辑 感谢您的支持 现在我终于添加了图像 添加了完整的 m file 尽管我认为没有必要 代码的关键是 xp 2 x 2 gt X2 xp 3 gt 0 xp 3 x 3 gt X3 xp 2 gt 0 完整代码 function xp u
  • Guice的injectMembers方法

    我了解使用构造函数注入相对于 setter 注入的好处 但在某些情况下我必须坚持仅使用基于 setter 的注入 我的问题是如何使用注入所有基于设置器的注入类的成员injector injectMembers method I am cal
  • getGenericParameterTypes 和 getParameterTypes 之间的区别

    我正在尝试了解之间的区别getGenericParameterTypes and getParameterTypes方法 我知道有人回来了Class 和另一个Type 但真正的区别是什么 考虑方法 public void method1 T
  • Git克隆存储库错误:RPC失败;结果=56,HTTP 代码=200

    我已经使用 Git 存储库几年了 但仍然感觉像个新手 非常欢迎帮助 它开始克隆一段时间 remote Counting objects 22394 br remote Compressing objects 100 12314 12314
  • iconv 返回奇怪的结果

    我正在研究一种方法来解决在 PHP 中创建帐户的自动脚本中使用特殊字符的问题 由于电子邮件地址和其他地方不需要特殊字符 因此我试图删除它们 但在将它们提供给脚本之前我无法删除它们 因为用户名必须正确显示给其他用户 例子 J rgen G t
  • scala 类中属性的可见性

    我通过以下方式在类的构造函数中定义了一个属性 class Step val message String 当我尝试访问时message从 Java 代码中获取可见性错误的值 为什么 如果添加 scala reflect BeanProper
  • 块递归和破坏保留周期

    为了更好地说明问题 请考虑以下块递归的简化形式 block void next int int index if index 3 return int i index next i next 0 XCode 启用 ARC 警告 在此块中强烈
  • 在 TypeScript 中输入 gql-tag

    我正在使用 GraphQL 并且希望严格输入gql 是否有可能使result变量的形状ResultData即使用最新版本的 TypeScript 它只与输入有关 与运行时无关 interface Data one string two nu
  • iOS 中的应用内购买测试

    我在用Xcode 8 0 斯威夫特 3 0并在我的 iPad 上进行应用程序购买测试 我想使用沙盒用户测试应用程序购买 设备设置中没有添加账户 问题是我没有获取产品列表来响应产品请求代码 请看一下我的代码 let PRODUCT ID MY
  • 使用大括号括起来的初始值设定项列表初始化结构时出错

    struct CLICKABLE int x int y BITMAP alt BITMAP bitmap CLICKABLE alt 0 CLICKABLE input 1 2 0 0 这段代码给我以下错误 无法从大括号括起来的初始值设定
  • 将表格放置在浮动图像旁边

    我想将表格放置在浮动图像旁边 同时保持表格宽度为 100 并且不会溢出父元素的宽度 我尝试了各种技术 但尚未达到我想要的结果 我的意思是 http jsfiddle net AX3UR 3 http jsfiddle net AX3UR 3
  • 查询过滤器表达式树的解析器

    我正在寻找一个可以对查询过滤器进行操作的解析器 然而 我不太清楚这些术语 所以事实证明这是一项艰苦的工作 我希望有人能帮助我 我读过有关 递归下降解析器 的内容 但我想知道这些是否适用于成熟的语言解析器 而不是我正在寻找的逻辑表达式评估 理
  • Apple Vision 框架 – 从图像中提取文本

    我正在使用 iOS 11 的 Vision 框架来检测图像上的文本 文本检测成功 但是我们如何获取检测到的文本呢 识别图像中的文本 VNRecognizeTextRequest适用于 iOS 13 0 和 macOS 10 15 及更高版本
  • 如何找到 3D 向量的哈希值?

    我正在尝试使用固定网格大小的方法执行宽相碰撞检测 因此 对于每个实体的位置 x y z 每个浮点数类型 我需要找到实体位于哪个单元格中 然后我打算将所有单元格存储在哈希表中 然后迭代报告 如果有 碰撞 所以 这就是我正在做的事情 网格单元的
  • 即使已安装,Plotly.io 也看不到 psutil 包

    我正在尝试执行以下代码 import numpy as np import pandas as pd import matplotlib pyplot as plt import matplotlib matplotlib inline i
  • 设置图例/图案与堆叠条形图中文本之间的空间

    我有 gnuplot 数据文件 CS 31 73 18 32 20 78 22 88 1 97 1 29 0 90 2 01 FL 43 27 29 45 15 64 6 55 1 64 1 27 2 18 0 00 HB 32 44 20
  • ReactTestUtils.Simulate 无法通过 addEventListener 触发事件绑定?

    这是示例 http jsfiddle net hulufei twr4thuh 7 http jsfiddle net hulufei twr4thuh 7 绑定时才起作用onClick在虚拟 dom 中 如第 18 行 但是如果我注释第