Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在preact/react中渲染后触发element.scrollIntoView()?_Javascript_Reactjs_Preact - Fatal编程技术网

Javascript 如何在preact/react中渲染后触发element.scrollIntoView()?

Javascript 如何在preact/react中渲染后触发element.scrollIntoView()?,javascript,reactjs,preact,Javascript,Reactjs,Preact,在preact中,我呈现一个元素列表,并对每个元素具有编辑功能。每当编辑元素时,它都会触发提取和完全重新渲染。我试图让DOM滚动到在获取和重新渲染后刚刚编辑的元素 当前代码如下所示: const ref = useRef(null); useEffect(() => { if (scrollToThis && !loading) ref.current.scrollIntoView({ behavior: 'smooth', block: 'end' }); }, [s

在preact中,我呈现一个元素列表,并对每个元素具有编辑功能。每当编辑元素时,它都会触发提取和完全重新渲染。我试图让DOM滚动到在获取和重新渲染后刚刚编辑的元素

当前代码如下所示:

const ref = useRef(null);
useEffect(() => {
  if (scrollToThis && !loading) ref.current.scrollIntoView({ behavior: 'smooth', block: 'end' });
}, [scrollToThis])
我将
ref
传递给该代码运行的组件的根。它可以工作,但几乎从不滚动到正确的元素(可能是因为传递到
useffect
ref
来自上一次渲染,但如果没有挂钩,代码根本无法工作)

我如何设置它,使ref始终是当前的并滚动到正确的元素?我一直在阅读博客文章和文档,但没有什么是真正适合我的