王思佳/光弘/朝倉凛

Results 215 comments of 王思佳/光弘/朝倉凛

感觉这是一个组件库层面上没有办法解决的问题,如果想要跟随滚动的话,就需要把弹层放在可滚动的容器里,而这个容器 overflow 之后又是 scroll。那这个弹层必然被挡住。但是业务上可以做一些调整,比如让 dialog 的滚动容器的可视区域多一些,或者放弃跟随容器滚动,选择 popup 在 document 上的都可以解决这个问题。

这感觉是一个使用 jest 和 react-testing-library 的问题,而不是 Fusion 的问题,因为 React 组件中使用 Animation 是很常见的情况,这并不是一个 Fusion 的使用问题或者 bug。关于如何在你说的测试框架下测试动画结束相关的,可以参考 stackoverflow 的这个 issue:https://stackoverflow.com/questions/77250912/how-to-wait-until-an-animation-ends-to-test-an-on-click-callback

> @eternalsky 感谢你的回复,事实上,在我发起issue之前,我就已经尝试了`fireEvent.animationEnd`的处理方式,然后我又参照你提供的链接又重新梳理测试了下,发现和我上面描述的是一样的问题,我相信这个问题并不是由于Fusion引起的,而是jest和react-testing-library的原因。 > > 在我提问之前,我去Fusion源代码的Balloon等组件的测试用例试图找一些参考,但是发现你们官方也没有提供测试trigger行为引起的弹层气泡消失的用例。能否辛苦贵团队完善一下相关测试用例为我们其他开发者提供一下参考如何正确处理动画效果?因为作为Balloon组件来讲,气泡的出现和消失是它非常重要的一个测试项,谢谢! 我们正在使用 cypress 对组件的测试用例进行重构,有些组件已经完成了跟动画相关的,比如 Animate 组件,可以作为参考。

> @eternalsky 感谢你的指导,我参考了Animate组件的cypress测试用例,但是还是有点摸不到头脑无法完成测试。就像我上面说的,气泡的显示和隐藏式Balloon组件一个非常重要的测试特性,但是贵团队的组件库却没有包含相关测试用例,能否请贵团队先对我issue中提出的testing-library用例代码进行指正如何借助Animated组件的测试思路完成测试?麻烦了。 按照 cypress 的思路,这里应该是要反复查询一段时间到出现为止。如果超过一段时间没有出现,则认为失败

> @eternalsky 我已经尝试过了等待一段时间等各种方式,但是testing-library仍然捕获不到有动画效果时气泡的最终状态,现在完全没有解决头绪,只能在用例里强制把动画效果关掉,能不能提供一个测试demo给像我这样有需要的开发者参考? 我们的组件本身是使用 enzyme 做测试的,重构后会使用 cypress,并没有使用 testing-library,因此也无法给你做准确的参考,这也不在我们提供的支持范围内。我们本身 balloon 有大量的 test case 你可以参考他们来实现你自己的 tc。

antd 也是类似的方式来管理的,因为表单值的操作很多,包括设置、重置、校验等等,不通过一个对象实例来管理感觉也没有更简单的办法。如果你有,可以提 RFC,我们可以考虑支持。如果你只是为了赋值,也可以使用 Form 的 value 属性,你不传入 field 的时候,Form 内部自己也会初始化 Field,可以通过 saveField 回调拿到这个内部自己初始化的。

> 建议使用formily2.0 formily 也要初始化 form 实例,在这个 issue 讨论的范围内没有看到有什么不同。

> 我想使用的场景很简单,给表单一个初始值,用户填写信息后,提交给接口,这么简单的动作,还要再初始化一个field,太复杂了 看上面的第一条回复,可以不用初始化 field。