mit*_*med 5 reactjs react-hooks
我正在尝试在反应应用程序上使用scrollIntoView,因此在页面中我使用它
useEffect(() => {
myRef.current.scrollIntoView({ behavior: 'smooth' });
}, [myRef, selectedSectionIndex, modalOpen]);
Run Code Online (Sandbox Code Playgroud)
它几乎适用于所有情况,因为我已经与ref={myRef}我想要查看的元素相关联。然而,在其中一个转换中,即使调用该代码,它也不会执行任何操作(甚至不会引发错误)。仅当我将其更改为
useEffect(() => {
setTimeout(() => myRef.current.scrollIntoView({ behavior: 'smooth' }), 0);
}, [myRef, selectedSectionIndex, modalOpen]);
Run Code Online (Sandbox Code Playgroud)
我读过类似的问题,这就是我实际尝试此解决方案的原因。但无法真正指出这是如何解决的。我一直在阅读,当第一个代码运行时,引用的 dom 元素可能尚未呈现,但是
A。为什么会出现在第二个呢?b. 将调试器放在该行上方,我可以看到该元素存在于 DOM 中,如果我释放调试器,则更是如此,同样并且默默地执行任何操作,但如果我跨过并运行该行,它实际上会滚动。编辑:我附上屏幕截图调试器的,如果我按 f8 则什么也不做,如果我按 f10 它会滚动
我想有一种更干净的方法来完成这项工作,但找不到它
谢谢
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |