【发布时间】:2021-03-14 16:36:15
【问题描述】:
即使组件已更新和重新渲染,我也想在反应组件中保留一个值。我通常将它存储在父组件中,但在这种情况下,父组件也会更新,所以这不是一个选项。
在以下示例中,我需要保留 div 元素的 scrollTop 位置。 我这样做的方法是将值存储在全局变量中。有没有办法不使用全局变量?
import React, { useRef, useEffect } from 'react';
import ItemsList from './ItemsList';
const ItemsListContainer = (props) => {
let elementRef = useRef(null);
useEffect(() => {
elementRef.current.scrollTop = window['scrollPos'];
});
function storeScrollPosition() {
window['scrollPos'] = elementRef.current.scrollTop;
}
return (
<div className="items-list-container" ref={elementRef} onScroll={storeScrollPosition}>
<ItemsList context={props.context}></ItemsList>
</div>
)
}
export default ItemsListContainer;
【问题讨论】:
标签: reactjs react-hooks