【问题标题】:Does Material-UI's Select component use setTimeout when closing and if so, why?Material-UI 的 Select 组件在关闭时是否使用 setTimeout,如果是,为什么?
【发布时间】:2019-11-04 09:28:12
【问题描述】:

Material-UI 的 Select 组件是否使用超时或其他时间功能然后关闭?我一直在试图找到代码的实现,也尝试过调试,但我找不到答案。

我需要知道这一点,因为我在使用 Cypress 测试框架及其在 Select 组件上的 clock() 方法编写 GUI 测试时遇到了一个问题。

clock 方法用于覆盖时间函数,例如 date、setTimeout 和 clearTimeout (https://docs.cypress.io/api/commands/clock.html#Syntax)。

在没有指定我只想覆盖 Date 的情况下使用它时,Select 组件不会按应有的方式关闭。实际的下拉菜单关闭,但不可见的背景 div (#menu-.presentation) 保持不变,因此当 cypress 想要继续测试运行时隐藏所有其他组件。

没有时钟,除了预期的与日期相关的错误外,测试工作正常。这使我认为 Select 以某种方式使用了超时,即使我找不到任何证据。我真的很想了解这种行为。

我没有使用原生选择。

相关的依赖有以下版本:

"@material-ui/core": "4.3.2"

“柏树”:“3.2.0”

"cypress-testing-library": "2.4.0"

【问题讨论】:

  • 你可以在你的项目中查看 Select 的实现:node_modules\@material-ui\core\Select

标签: reactjs select material-ui cypress


【解决方案1】:

由于涉及的不同组件的数量,查看代码很复杂,但如果你仔细研究所有这些,你最终会找到setTimeout

【讨论】:

  • 谢谢!这就是我要找的!
猜你喜欢
  • 2019-02-11
  • 2021-11-19
  • 2020-12-03
  • 2020-07-30
  • 2019-11-04
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 2021-09-27
相关资源
最近更新 更多